spec/archive/reader_spec.rb in heirloom-0.3.1 vs spec/archive/reader_spec.rb in heirloom-0.4.0

- old
+ new

@@ -3,104 +3,115 @@ describe Heirloom do before do @sdb_mock = mock 'sdb' @config_mock = double 'config' - @logger_mock = double 'logger' - @config_mock.should_receive(:logger).and_return @logger_mock + @logger_stub = stub :debug => true + @config_mock.should_receive(:logger).and_return @logger_stub Heirloom::AWS::SimpleDB.should_receive(:new).and_return @sdb_mock @reader = Heirloom::Reader.new :config => @config_mock, :name => 'tim', :id => '123' end - it "should show the item record" do - @sdb_mock.should_receive(:select). - with("select * from tim where itemName() = '123'"). - and_return( { '123' => { 'value' => [ 'details' ] } } ) - @reader.show.should == { 'value' => 'details' } - end + context "domain does exist" do + before do + @sdb_mock.stub :domain_exists? => true + end - it "should return an empty hash if item does not exist" do - @sdb_mock.should_receive(:select). - with("select * from tim where itemName() = '123'"). - and_return({}) - @reader.show.should == {} - end + it "should show the item record" do + @sdb_mock.should_receive(:select). + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { '123' => { 'value' => [ 'details' ] } } ) + @reader.show.should == { 'value' => 'details' } + end - it "should return true if the record exists" do - @sdb_mock.should_receive(:select). - with("select * from tim where itemName() = '123'"). - and_return( { '123' => { 'value' => [ 'details' ] } } ) - @logger_mock.should_receive(:debug).exactly(1).times - @reader.exists?.should == true - end + it "should return an empty hash if item does not exist" do + @sdb_mock.should_receive(:select). + with("select * from heirloom_tim where itemName() = '123'"). + and_return({}) + @reader.show.should == {} + end - it "should return false if the recrod does not exist" do - @sdb_mock.should_receive(:select). - with("select * from tim where itemName() = '123'"). - and_return({}) - @logger_mock.should_receive(:debug).exactly(1).times - @reader.exists?.should == false - end + it "should return true if the record exists" do + @sdb_mock.should_receive(:select). + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { '123' => { 'value' => [ 'details' ] } } ) + @reader.exists?.should == true + end - it "should return the bucket if it exists" do - @logger_mock.should_receive(:debug).exactly(5).times - @sdb_mock.should_receive(:select). - exactly(3).times. - with("select * from tim where itemName() = '123'"). - and_return( { '123' => - { 'us-west-1-s3-url' => - [ 's3://the-bucket/the-buck/the-key' ] - } - } ) - @reader.get_bucket(:region => 'us-west-1').should == 'the-bucket' - end + it "should return false if the record does not exist" do + @sdb_mock.should_receive(:select). + with("select * from heirloom_tim where itemName() = '123'"). + and_return({}) + @reader.exists?.should == false + end - it "should return nil if the bucket does not exist" do - @logger_mock.should_receive(:debug).exactly(3).times - @sdb_mock.should_receive(:select). - exactly(1).times. - with("select * from tim where itemName() = '123'"). - and_return( { } ) - @reader.get_bucket(:region => 'us-west-1').should == nil - end + it "should return the bucket if it exists" do + @sdb_mock.should_receive(:select). + exactly(3).times. + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { '123' => + { 'us-west-1-s3-url' => + [ 's3://the-bucket/the-buck/the-key' ] + } + } ) + @reader.get_bucket(:region => 'us-west-1').should == 'the-bucket' + end - it "should return the key if it exists" do - @logger_mock.should_receive(:debug).exactly(8).times - @sdb_mock.should_receive(:select). - exactly(6).times. - with("select * from tim where itemName() = '123'"). - and_return( { '123' => - { 'us-west-1-s3-url' => - ['s3://the-url/the-bucket/the-key'] - } - } ) - @reader.get_key(:region => 'us-west-1').should == 'the-bucket/the-key' - end + it "should return nil if the key does not exist" do + @sdb_mock.should_receive(:select). + exactly(1).times. + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { } ) + @reader.get_key(:region => 'us-west-1').should == nil + end - it "should return nil if the key does not exist" do - @logger_mock.should_receive(:debug).exactly(1).times - @sdb_mock.should_receive(:select). - exactly(1).times. - with("select * from tim where itemName() = '123'"). - and_return( { } ) - @reader.get_key(:region => 'us-west-1').should == nil + it "should return nil if the bucket does not exist" do + @sdb_mock.should_receive(:select). + exactly(1).times. + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { } ) + @reader.get_bucket(:region => 'us-west-1').should == nil + end + + it "should return the key if it exists" do + @sdb_mock.should_receive(:select). + exactly(6).times. + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { '123' => + { 'us-west-1-s3-url' => + ['s3://the-url/the-bucket/the-key'] + } + } ) + @reader.get_key(:region => 'us-west-1').should == 'the-bucket/the-key' + end + + it "should return the regions the archive has been uploaded to" do + @sdb_mock.should_receive(:select). + exactly(1).times. + with("select * from heirloom_tim where itemName() = '123'"). + and_return( { '123' => + { 'us-west-1-s3-url' => + ['s3://the-url-us-west-1/the-bucket/the-key'], + 'build_by' => + ['user'], + 'us-east-1-s3-url' => + ['s3://the-url-us-east-1/the-bucket/the-key'] + } + } ) + @reader.regions.should == ['us-west-1', 'us-east-1'] + end + end - it "should return the regions the archive has been uploaded to" do - @sdb_mock.should_receive(:select). - exactly(1).times. - with("select * from tim where itemName() = '123'"). - and_return( { '123' => - { 'us-west-1-s3-url' => - ['s3://the-url-us-west-1/the-bucket/the-key'], - 'build_by' => - ['user'], - 'us-east-1-s3-url' => - ['s3://the-url-us-east-1/the-bucket/the-key'] - } - } ) - @reader.regions.should == ['us-west-1', 'us-east-1'] + context "domain does not exist" do + before do + @sdb_mock.stub :domain_exists? => false + end + + it "should return false if the simpledb domain does not exist" do + @reader.exists?.should == false + end end end