cleanup aws server specs and extract some to shared examples

This commit is contained in:
Wesley Beary 2010-01-09 12:22:45 -08:00
Родитель e60446bcbf
Коммит f61d47ee26
4 изменённых файлов: 84 добавлений и 112 удалений

Просмотреть файл

@ -1,7 +1,22 @@
require File.dirname(__FILE__) + '/../../../spec_helper'
require File.dirname(__FILE__) + '/../../../shared_examples/server_examples'
describe 'Fog::AWS::EC2::Server' do
it_should_behave_like "Server"
subject { @server = @servers.new(:image_id => GENTOO_AMI) }
before(:each) do
@servers = ec2.servers
end
after(:each) do
if @server && !@server.new_record?
eventually { @server.destroy }
end
end
describe "#initialize" do
it "should remap attributes from parser" do
@ -38,18 +53,8 @@ describe 'Fog::AWS::EC2::Server' do
describe "#addresses" do
it "should return a Fog::AWS::EC2::Addresses" do
server = ec2.servers.create(:image_id => GENTOO_AMI)
server.addresses.should be_a(Fog::AWS::EC2::Addresses)
server.destroy
end
end
describe "#destroy" do
it "should return true if the server is deleted" do
server = ec2.servers.create(:image_id => GENTOO_AMI)
server.destroy.should be_true
subject.save
subject.addresses.should be_a(Fog::AWS::EC2::Addresses)
end
end
@ -63,19 +68,6 @@ describe 'Fog::AWS::EC2::Server' do
end
end
describe "#collection" do
it "should return a Fog::AWS::EC2::Servers" do
ec2.servers.new.collection.should be_a(Fog::AWS::EC2::Servers)
end
it "should be the servers the server is related to" do
servers = ec2.servers
servers.new.collection.should == servers
end
end
describe "#key_pair" do
it "should have tests"
end
@ -104,56 +96,11 @@ describe 'Fog::AWS::EC2::Server' do
end
describe "#reload" do
before(:each) do
@server = ec2.servers.create(:image_id => GENTOO_AMI)
@reloaded = @server.reload
end
after(:each) do
@server.destroy
end
it "should return a Fog::AWS::EC2::Server" do
@reloaded.should be_a(Fog::AWS::EC2::Server)
end
it "should reset attributes to remote state" do
@server.attributes.should == @reloaded.attributes
end
end
describe "#save" do
before(:each) do
@server = ec2.servers.new(:image_id => GENTOO_AMI)
end
it "should return true when it succeeds" do
@server.save.should be_true
@server.destroy
end
it "should not exist in servers before save" do
ec2.servers.get(@server.id).should be_nil
end
it "should exist in buckets after save" do
@server.save
ec2.servers.get(@server.id).should_not be_nil
@server.destroy
end
end
describe "#volumes" do
it "should return a Fog::AWS::EC2::Volumes" do
server = ec2.servers.create(:image_id => GENTOO_AMI)
server.volumes.should be_a(Fog::AWS::EC2::Volumes)
server.destroy
subject.save
subject.volumes.should be_a(Fog::AWS::EC2::Volumes)
end
end

Просмотреть файл

@ -2,67 +2,49 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
describe 'Fog::AWS::EC2::Servers' do
describe "#all" do
it "should return a Fog::AWS::EC2::Servers" do
ec2.servers.all.should be_a(Fog::AWS::EC2::Servers)
end
it "should include persisted servers" do
server = ec2.servers.create(:image_id => GENTOO_AMI)
ec2.servers.get(server.id).should_not be_nil
server.destroy
end
subject { @server = @servers.create(:image_id => GENTOO_AMI) }
before(:each) do
@servers = ec2.servers
end
describe "#create" do
before(:each) do
@server = ec2.servers.create(:image_id => GENTOO_AMI)
end
after(:each) do
after(:each) do
if @server && !@server.new_record?
@server.destroy
end
end
it "should return a Fog::AWS::EC2::Server" do
@server.should be_a(Fog::AWS::EC2::Server)
end
describe "#all" do
it "should exist on ec2" do
ec2.servers.get(@server.id).should_not be_nil
it "should include persisted servers" do
eventually do
@servers.all.map {|server| server.id}.should include(subject.id)
end
end
end
describe "#get" do
it "should return a Fog::AWS::EC2::Server if a matching server exists" do
server = ec2.servers.create(:image_id => GENTOO_AMI)
get = ec2.servers.get(server.id)
server.attributes.should == get.attributes
server.destroy
it "should return a matching server if one exists" do
eventually do
get = @servers.get(subject.id)
subject.attributes.should == get.attributes
end
end
it "should return nil if no matching server exists" do
ec2.servers.get('i-00000000').should be_nil
end
end
describe "#new" do
it "should return a Fog::AWS::EC2::Server" do
ec2.servers.new(:image_id => GENTOO_AMI).should be_a(Fog::AWS::EC2::Server)
@servers.get('i-00000000').should be_nil
end
end
describe "#reload" do
it "should return a Fog::AWS::EC2::Servers" do
ec2.servers.all.reload.should be_a(Fog::AWS::EC2::Servers)
it "should reset attributes to remote state" do
servers = @servers.all
reloaded = servers.reload
servers.attributes.should == reloaded.attributes
end
end

Просмотреть файл

@ -0,0 +1,43 @@
shared_examples_for "Server" do
describe "#destroy" do
it "should return true if the server is deleted" do
subject.save
subject.destroy.should be_true
end
end
describe "#reload" do
it "should reset attributes to remote state" do
subject.save
eventually do
@reloaded = subject.reload
end
subject.attributes.should == @reloaded.attributes
end
end
describe "#save" do
it "should return true when it succeeds" do
subject.save.should be_true
end
it "should not exist remotely before save" do
@servers.get(subject.id).should be_nil
end
it "should exist remotely after save" do
subject.save
eventually do
@servers.get(subject.id).should_not be_nil
end
end
end
end

Просмотреть файл

@ -72,7 +72,7 @@ def eventually(max_delay = 16, &block)
sleep(delay)
yield
break
rescue Excon::Errors::Error => error
rescue => error
raise error if delay >= max_delay
end
end