Sha256: 07750a5b158a4ab5ceec299f258c04cb088defde995e59a1ba4b91e69eef7e4e
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
# encoding: utf-8 describe ServiceObjects::Invalid do let(:messages) { double :messages } let(:object) { double :object, messages: messages } subject { described_class.new object } describe ".new" do context "without arguments" do subject { described_class.new } it "fails with ArgumentError" do expect { subject }.to raise_error ArgumentError end end context "with an object that doesn't responds to :messages" do let(:object) { double } subject { described_class.new object } it "fails with TypeError" do expect { subject }.to raise_error TypeError end it "returns a proper message" do begin subject rescue => err expect(err.message) .to eq "#{ object.inspect } doesn't respond to #messages" end end end context "with an object that responds to :messages" do it "doesn't fail" do expect { subject }.not_to raise_error end it "initializes a RuntimeError" do expect(subject).to be_kind_of RuntimeError end end end describe "#object" do it "is initialized" do expect(subject.object).to eq object end end describe "#messages" do it "returns an array" do expect(subject.messages).to be_kind_of Array end it "is delegated to the #object" do expect(subject.messages).to contain_exactly object.messages end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
service_objects-0.1.0 | spec/tests/invalid_spec.rb |
service_objects-0.0.2 | spec/tests/invalid_spec.rb |
service_objects-0.0.1 | spec/tests/invalid_spec.rb |