Permalink
Fetching contributors…
Cannot retrieve contributors at this time
60 lines (49 sloc) 2.51 KB
require File.dirname(__FILE__) + '/test_helper.rb'
context "Spot price history " do
before do
@ec2 = AWS::EC2::Base.new( :access_key_id => "not a key", :secret_access_key => "not a secret" )
@describe_spot_price_history_response_body = <<-RESPONSE
<DescribeSpotPriceHistoryResponse xmlns="http://ec2.amazonaws.com/doc/2009-11-30/">
<spotPriceHistorySet>
<item>
<instanceType>m1.small</instanceType>
<productDescription>Linux/UNIX</productDescription>
<spotPrice>0.287</spotPrice>
<timestamp>2009-12-04T20:56:05.000Z</timestamp>
</item>
<item>
<instanceType>m1.small</instanceType>
<productDescription>Windows</productDescription>
<spotPrice>0.033</spotPrice>
<timestamp>2009-12-04T22:33:47.000Z</timestamp>
</item>
</spotPriceHistorySet>
</DescribeSpotPriceHistoryResponse>
RESPONSE
end
specify "should be able to be listed" do
@ec2.stubs(:make_request).with('DescribeSpotPriceHistory', {}).
returns stub(:body => @describe_spot_price_history_response_body, :is_a? => true)
@ec2.describe_spot_price_history().should.be.an.instance_of Hash
@ec2.describe_spot_price_history().spotPriceHistorySet.item.should.be.an.instance_of Array
end
specify "should reject a start_time which is not a Time object" do
lambda { @ec2.describe_spot_price_history(:start_time => "foo") }.should.raise(AWS::ArgumentError)
end
specify "should reject an end_time which is not a Time object" do
lambda { @ec2.describe_spot_price_history(:end_time => 42) }.should.raise(AWS::ArgumentError)
end
specify "should be able to be requested with various instance types" do
["t1.micro", "m1.small", "m1.large", "m1.xlarge", "m2.xlarge", "c1.medium", "c1.xlarge", "m2.2xlarge", "m2.4xlarge", "cc1.4xlarge", "cg1.4xlarge"].each do |type|
@ec2.stubs(:make_request).with('DescribeSpotPriceHistory', {'InstanceType' => type}).
returns stub(:body => @describe_spot_price_history_response_body, :is_a? => true)
lambda { @ec2.describe_spot_price_history( :instance_type => type ) }.should.not.raise(AWS::ArgumentError)
end
end
specify "should reject an invalid instance type" do
lambda { @ec2.describe_spot_price_history(:instance_type => 'm1.tiny') }.should.raise(AWS::ArgumentError)
end
specify "should reject an invalid product description" do
lambda { @ec2.describe_spot_price_history(:product_description => 'Solaris') }.should.raise(AWS::ArgumentError)
end
end