Sha256: cebed1b22ef8ea81b4fd2257aae715f636ff006173bc8bc3ef11ad74d6723c8f

Contents?: true

Size: 1.62 KB

Versions: 21

Compression:

Stored size: 1.62 KB

Contents

require "spec_helper"
require "opsicle"

module Opsicle
  describe  S3Bucket do
    subject { S3Bucket.new(client, bucket_name) }
    let(:bucket_name) { "bucket" }
    let(:bucket) { double(exists?: true) }
    let(:buckets) { double(:"[]" => bucket) }
    let(:s3) { double(buckets: buckets) }
    let(:client) { double(s3: s3) }

    context "#new" do
      subject { S3Bucket }
      it "finds the bucket from s3" do
        expect(client).to receive(:s3).and_return(s3)
        expect(s3).to receive(:buckets).and_return(buckets)
        expect(buckets).to receive(:"[]").with(bucket_name).and_return(bucket)
        subject.new(client, bucket_name)
      end

      it "throws an error if the bucket can't be found" do
        allow(bucket).to receive(:exists?).and_return(false)
        expect(client).to receive(:s3).and_return(s3)
        expect(s3).to receive(:buckets).and_return(buckets)
        expect(buckets).to receive(:"[]").with(bucket_name).and_return(bucket)
        expect { subject.new(client, bucket_name) }.to raise_error(UnknownBucket)
      end
    end

    context "#update" do
      let(:object) { double }
      let(:objects) { double(:"[]" => object) }
      before do
        allow(Pathname).to receive(:new)
      end

      it "finds the object in the s3 bucket" do
        allow(object).to receive(:write)
        expect(bucket).to receive(:objects).and_return(objects)
        subject.update(object)
      end

      it "writes the new object in the s3 bucket" do
        allow(bucket).to receive(:objects).and_return(objects)
        expect(object).to receive(:write)
        subject.update(object)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
opsicle-0.18.1 spec/opsicle/s3_bucket_spec.rb
opsicle-0.18.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.16.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.15.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.14.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.13.1 spec/opsicle/s3_bucket_spec.rb
opsicle-0.13.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.12.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.11.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.10.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.9.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.8.2 spec/opsicle/s3_bucket_spec.rb
opsicle-0.8.1 spec/opsicle/s3_bucket_spec.rb
opsicle-0.8.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.7.1 spec/opsicle/s3_bucket_spec.rb
opsicle-0.7.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.6.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.5.1 spec/opsicle/s3_bucket_spec.rb
opsicle-0.5.0 spec/opsicle/s3_bucket_spec.rb
opsicle-0.4.2 spec/opsicle/s3_bucket_spec.rb