From 922d3a42489f1c71d478a01d2dc6e1c0c32d0de6 Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Fri, 23 Oct 2009 09:32:20 -0700 Subject: [PATCH] update volume spec with required params (mocks had missed this) and wait blocks for instances to be ready for attaching --- spec/aws/models/ec2/volume_spec.rb | 35 ++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/spec/aws/models/ec2/volume_spec.rb b/spec/aws/models/ec2/volume_spec.rb index 95bc19d6a..91466626d 100644 --- a/spec/aws/models/ec2/volume_spec.rb +++ b/spec/aws/models/ec2/volume_spec.rb @@ -39,7 +39,7 @@ describe 'Fog::AWS::EC2::Volume' do describe "#destroy" do it "should return true if the volume is deleted" do - volume = ec2.volumes.create + volume = ec2.volumes.create(:availability_zone => 'us-east-1a', :size => 1, :device => 'dev/sdz1') volume.destroy.should be_true end @@ -47,39 +47,56 @@ describe 'Fog::AWS::EC2::Volume' do describe "#instance=" do before(:each) do - @volume = ec2.volumes.new @instance = ec2.instances.create(:image_id => GENTOO_AMI) + @volume = ec2.volumes.new(:availability_zone => @instance.availability_zone, :size => 1, :device => 'dev/sdz1') + while @instance.instance_state == 'pending' + @instance.reload + end + while @volume.status == 'creating' + @volume.reload + end end after(:each) do + @instance.destroy if @volume.volume_id @volume.destroy end - @instance.destroy end - it "should not attach to instance if the address has not been saved" do + it "should not attach to instance if the volume has not been saved" do @volume.instance = @instance @volume.instance_id.should_not == @instance.instance_id end - it "should attach to instance when the address is saved" do + it "should change the availability_zone if the volume has not been saved" do + @volume.instance = @instance + @volume.availability_zone.should == @instance.availability_zone + end + + it "should attach to instance when the volume is saved" do @volume.instance = @instance @volume.save.should be_true @volume.instance_id.should == @instance.instance_id end - it "should attach to instance to an already saved address" do + it "should attach to instance to an already saved volume" do @volume.save.should be_true @volume.instance = @instance @volume.instance_id.should == @instance.instance_id end + + it "should not change the availability_zone if the volume has been saved" do + @volume.save.should be_true + @volume.instance = @instance + @volume.availability_zone.should == @instance.availability_zone + end end describe "#reload" do before(:each) do - @volume = ec2.volumes.create + @volume = ec2.volumes.create(:availability_zone => 'us-east-1a', :size => 1, :device => 'dev/sdz1') @reloaded = @volume.reload end @@ -100,7 +117,7 @@ describe 'Fog::AWS::EC2::Volume' do describe "#save" do before(:each) do - @volume = ec2.volumes.new + @volume = ec2.volumes.new(:availability_zone => 'us-east-1a', :size => 1, :device => 'dev/sdz1') end it "should return true when it succeeds" do @@ -108,7 +125,7 @@ describe 'Fog::AWS::EC2::Volume' do @volume.destroy end - it "should not exist in addresses before save" do + it "should not exist in volumes before save" do @volume.volumes.get(@volume.volume_id).should be_nil end