Sha256: c59856c836375d2c59b7c6841fa4b3ad01a8214beb1fe5ce9dadf6d0a7e14735
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
require 'spec_helper' describe Concord do let(:class_under_test) do Class.new do include Concord.new(:foo, :bar) end end let(:instance_a) { class_under_test.new(foo, bar) } let(:instance_b) { class_under_test.new(foo, bar) } let(:instance_c) { class_under_test.new(foo, mock('Baz')) } let(:foo) { mock('Foo') } let(:bar) { mock('Bar') } context 'initializer lines' do unless Devtools.jruby? it 'sets initializer correctly' do klass = Class.new # Nicher way to assert this? klass.should_receive(:class_eval) do |code, file, line| file.should eql(File.expand_path('../../../../lib/concord.rb', __FILE__)) line.should be(82) end klass.send(:include, Concord.new) end end end context 'attribute behavior' do subject { instance_a } its(:foo) { should be(foo) } its(:bar) { should be(bar) } end context 'equalization behavior' do specify 'composed objects are equalized on attributes' do instance_a.should == instance_b instance_a.hash.should == instance_b.hash instance_a.should eql(instance_b) instance_a.should_not == instance_c instance_a.should_not eql(instance_c) end end context 'to much composition behavior' do specify 'it raises an error' do expect { Concord.new(:a, :b, :c, :d) }.to raise_error(RuntimeError, 'Composition of more than three objects is not allowed') end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
concord-0.0.3 | spec/unit/concord/universal_spec.rb |
concord-0.0.2 | spec/unit/concord/universal_spec.rb |
concord-0.0.1 | spec/unit/concord/universal_spec.rb |