HornsAndHooves-flat_map 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,13 +31,13 @@ module FlatMap
31
31
  describe 'Mapping' do
32
32
  context 'defining mappings' do
33
33
  it "should use Factory for defining mappings" do
34
- MappingSpec::EmptyMapper.should_receive(:define_mappings).once.
34
+ expect(MappingSpec::EmptyMapper).to receive(:define_mappings).once.
35
35
  with({:attr_a => :attr_a, :mapped_attr_b => :attr_b}, {:writer => false}).
36
36
  and_call_original
37
- Mapping::Factory.should_receive(:new).
37
+ expect(Mapping::Factory).to receive(:new).
38
38
  with(:attr_a, :attr_a, :writer => false).
39
39
  and_call_original
40
- Mapping::Factory.should_receive(:new).
40
+ expect(Mapping::Factory).to receive(:new).
41
41
  with(:mapped_attr_b, :attr_b, :writer => false).
42
42
  and_call_original
43
43
 
@@ -48,36 +48,36 @@ module FlatMap
48
48
  end
49
49
 
50
50
  specify 'mapper class should have defined mappings' do
51
- MappingSpec::SpecMapper.mappings.size.should == 4
52
- MappingSpec::SpecMapper.mappings.all?{ |m| m.is_a?(Mapping::Factory) }.should be true
51
+ expect(MappingSpec::SpecMapper.mappings.size).to eq 4
52
+ expect(MappingSpec::SpecMapper.mappings.all?{ |m| m.is_a?(Mapping::Factory) }).to be true
53
53
  end
54
54
 
55
55
  context "for initialized mapper" do
56
- let(:target){ MappingSpec::SpecTarget.new('a', 'b', 'c', 'd') }
57
- let(:mapper){ MappingSpec::SpecMapper.new(target) }
56
+ let(:target) { MappingSpec::SpecTarget.new('a', 'b', 'c', 'd') }
57
+ let(:mapper) { MappingSpec::SpecMapper.new(target) }
58
58
 
59
59
  it "should be able to access mapping by its name" do
60
- mapper.mapping(:mapped_attr_a).should be_a(FlatMap::Mapping)
61
- mapper.mapping(:not_defined).should be_nil
60
+ expect(mapper.mapping(:mapped_attr_a)).to be_a(FlatMap::Mapping)
61
+ expect(mapper.mapping(:not_defined )).to be_nil
62
62
  end
63
63
 
64
64
  describe 'reading and writing' do
65
65
  it "should be able to read from target via brackets" do
66
- mapper[:mapped_attr_a].should == 'a'
66
+ expect(mapper[:mapped_attr_a]).to eq 'a'
67
67
  end
68
68
 
69
69
  it 'should be able to write to target via brackets' do
70
70
  mapper[:attr_b] = 'B'
71
- target.attr_b.should == 'B'
71
+ expect(target.attr_b).to eq 'B'
72
72
  end
73
73
 
74
74
  it '#read should read all mappings to a hash' do
75
- mapper.read.should == {
75
+ expect(mapper.read).to eq({
76
76
  :mapped_attr_a => 'a',
77
77
  :attr_b => 'b',
78
78
  :attr_c => 'attr_c-c',
79
79
  :mapped_attr_d => 'mapped_attr_d-d'
80
- }
80
+ })
81
81
  end
82
82
 
83
83
  it '#write should assign values using mappings, ignoring invalid ones' do
@@ -87,10 +87,10 @@ module FlatMap
87
87
  :attr_c => 'new-c',
88
88
  :mapped_attr_d => 'new-d'
89
89
 
90
- target.attr_a.should == 'A'
91
- target.attr_b.should == 'B'
92
- target.attr_c.should == 'NEW-C'
93
- target.attr_d.should == 'NEW-D'
90
+ expect(target.attr_a).to eq 'A'
91
+ expect(target.attr_b).to eq 'B'
92
+ expect(target.attr_c).to eq 'NEW-C'
93
+ expect(target.attr_d).to eq 'NEW-D'
94
94
  end
95
95
  end
96
96
  end
@@ -75,7 +75,7 @@ module FlatMap
75
75
 
76
76
  context 'defining mountings' do
77
77
  it "should use Factory for defining mappings" do
78
- Mapper::Factory.should_receive(:new).
78
+ expect(Mapper::Factory).to receive(:new).
79
79
  with(:foo, :mapper_class_name => 'FooMapper').
80
80
  and_call_original
81
81
 
@@ -85,75 +85,75 @@ module FlatMap
85
85
  end
86
86
 
87
87
  describe 'properties' do
88
- it{ mapper.hosted?.should be false }
89
- it{ mounting.hosted?.should be true }
90
- it{ mounting.host.should == mapper }
88
+ it{ expect(mapper.hosted? ).to be false }
89
+ it{ expect(mounting.hosted?).to be true }
90
+ it{ expect(mounting.host ).to eq mapper }
91
91
  end
92
92
 
93
93
  it 'should be able to access mapping by name' do
94
- mapper.mounting(:spec_mount).should be_a(FlatMap::Mapper)
95
- mapper.mounting(:undefined_mount).should be_nil
94
+ expect(mapper.mounting(:spec_mount )).to be_a(FlatMap::Mapper)
95
+ expect(mapper.mounting(:undefined_mount)).to be_nil
96
96
  end
97
97
 
98
98
  describe "#read" do
99
99
  it 'should add mounted mappers to a result' do
100
- mapper.read.should == {
100
+ expect(mapper.read).to eq({
101
101
  :host_attr => 'attr',
102
102
  :attr_a => 'a',
103
103
  :mapped_attr_b => 'b'
104
- }
104
+ })
105
105
  end
106
106
 
107
107
  it 'should define dynamic writer methods' do
108
- mapper.respond_to?(:attr_a).should be true
109
- mapper.method(:attr_a).should_not be nil
108
+ expect(mapper.respond_to?(:attr_a)).to be true
109
+ expect(mapper.method(:attr_a )).not_to be nil
110
110
 
111
- mapper.respond_to?(:mapped_attr_b).should be true
112
- mapper.method(:mapped_attr_b).should_not be nil
111
+ expect(mapper.respond_to?(:mapped_attr_b)).to be true
112
+ expect(mapper.method(:mapped_attr_b )).not_to be nil
113
113
  end
114
114
  end
115
115
 
116
116
  describe "#write" do
117
117
  it 'should define dynamic writer methods' do
118
- mapper.respond_to?(:attr_a=).should be true
119
- mapper.method(:attr_a=).should_not be nil
118
+ expect(mapper.respond_to?(:attr_a=)).to be true
119
+ expect(mapper.method(:attr_a= )).not_to be nil
120
120
 
121
- mapper.respond_to?(:mapped_attr_b=).should be true
122
- mapper.method(:mapped_attr_b=).should_not be nil
121
+ expect(mapper.respond_to?(:mapped_attr_b=)).to be true
122
+ expect(mapper.method(:mapped_attr_b= )).not_to be nil
123
123
  end
124
124
 
125
125
  it 'should pass values to mounted mappers' do
126
126
  target = MountingSpec.mount_target
127
127
  mapper.write :attr_a => 'A', :mapped_attr_b => 'B'
128
- target.attr_a.should == 'A'
129
- target.attr_b.should == 'B'
128
+ expect(target.attr_a).to eq 'A'
129
+ expect(target.attr_b).to eq 'B'
130
130
  end
131
131
  end
132
132
 
133
133
  it 'should delegate missing methods to mounted mappers' do
134
- expect{ mapper.a_method.should == 'a value' }.not_to raise_error
134
+ expect{ expect(mapper.a_method).to eq 'a value' }.not_to raise_error
135
135
  end
136
136
 
137
137
  specify '#before_save_mountings' do
138
- mapper.before_save_mountings.should == [mapper.mounting(:spec_mount_before)]
138
+ expect(mapper.before_save_mountings).to eq [mapper.mounting(:spec_mount_before)]
139
139
  end
140
140
 
141
141
  specify '#after_save_mountings' do
142
- mapper.after_save_mountings.should == [mapper.mounting(:spec_mount)]
142
+ expect(mapper.after_save_mountings).to eq [mapper.mounting(:spec_mount)]
143
143
  end
144
144
 
145
145
  context 'with suffix' do
146
146
  let(:mapper){ MountingSuffixSpec::SpecMapper.new(OpenStruct.new) }
147
147
  let(:mounting){ mapper.mounting(:mount_foo) }
148
148
 
149
- it{ mapper.should_not be_suffixed }
150
- it{ mounting.should be_suffixed }
149
+ it{ expect(mapper ).not_to be_suffixed }
150
+ it{ expect(mounting).to be_suffixed }
151
151
 
152
152
  it 'should cascade to nested mappings' do
153
153
  mapper.attr_mount_foo = 'foo'
154
154
  mapper.attr_nested_foo = 'bar'
155
155
 
156
- mapper.read.should include({
156
+ expect(mapper.read).to include({
157
157
  :attr_mount_foo => 'foo',
158
158
  :attr_nested_foo => 'bar' })
159
159
  end
@@ -29,21 +29,24 @@ module FlatMap
29
29
  describe Mapper::Persistence do
30
30
  describe '#target_class' do
31
31
  it 'should detect target_class from mapper class name' do
32
- PersistenceSpec::TargetClassMapper.target_class.should == PersistenceSpec::TargetClass
32
+ expect(PersistenceSpec::TargetClassMapper.target_class.ancestors).
33
+ to include PersistenceSpec::TargetClass
33
34
  end
34
35
 
35
36
  it 'should detect target_class from nearest ancestor when inherited' do
36
- PersistenceSpec::InheritedClassMapper.target_class.should == PersistenceSpec::TargetClass
37
+ expect(PersistenceSpec::InheritedClassMapper.target_class.ancestors).
38
+ to include PersistenceSpec::TargetClass
37
39
  end
38
40
 
39
41
  it 'should use explicit class name if specified' do
40
- PersistenceSpec::ExplicitNameMapper.target_class.should == PersistenceSpec::OtherTargetClass
42
+ expect(PersistenceSpec::ExplicitNameMapper.target_class.ancestors).
43
+ to include PersistenceSpec::OtherTargetClass
41
44
  end
42
45
  end
43
46
 
44
47
  describe '.build' do
45
48
  it 'should use target class to build a new object for mapper' do
46
- PersistenceSpec::TargetClassMapper.should_receive(:new).with(kind_of(PersistenceSpec::TargetClass), :used_trait)
49
+ expect(PersistenceSpec::TargetClassMapper).to receive(:new).with(kind_of(PersistenceSpec::TargetClass), :used_trait)
47
50
  PersistenceSpec::TargetClassMapper.build(:used_trait)
48
51
  end
49
52
  end
@@ -52,8 +55,8 @@ module FlatMap
52
55
  let(:target){ PersistenceSpec::TargetClass.new('a', 'b') }
53
56
 
54
57
  it 'should delegate to target class to find object for mapper' do
55
- PersistenceSpec::TargetClass.should_receive(:find).with(1).and_return(target)
56
- PersistenceSpec::TargetClassMapper.should_receive(:new).with(target, :used_trait)
58
+ expect(PersistenceSpec::TargetClass).to receive(:find).with(1).and_return(target)
59
+ expect(PersistenceSpec::TargetClassMapper).to receive(:new).with(target, :used_trait)
57
60
  PersistenceSpec::TargetClassMapper.find(1, :used_trait)
58
61
  end
59
62
  end
@@ -63,35 +66,35 @@ module FlatMap
63
66
  let(:mapper){ PersistenceSpec::TargetClassMapper.new(target){} }
64
67
 
65
68
  specify '#model_name' do
66
- mapper.model_name.should == 'mapper'
69
+ expect(mapper.model_name).to eq 'mapper'
67
70
  end
68
71
 
69
72
  specify '#to_key should delegate to target' do
70
- target.should_receive(:to_key).and_return(1)
71
- mapper.to_key.should == 1
73
+ expect(target).to receive(:to_key).and_return(1)
74
+ expect(mapper.to_key).to eq 1
72
75
  end
73
76
 
74
77
  specify '#persisted? when target does not respond to :persised?' do
75
- mapper.should_not be_persisted
78
+ expect(mapper).not_to be_persisted
76
79
  end
77
80
 
78
81
  specify '#persisted? when target responds to :persisted?' do
79
- target.stub(:persisted?).and_return(true)
80
- mapper.should be_persisted
82
+ expect(target).to receive(:persisted?).and_return(true)
83
+ expect(mapper).to be_persisted
81
84
  end
82
85
 
83
86
  specify '#id when target does not respond to :id' do
84
- mapper.id.should be_nil
87
+ expect(mapper.id).to be_nil
85
88
  end
86
89
 
87
90
  specify '#id when target responds to :id' do
88
- target.stub(:id).and_return(1)
89
- mapper.id.should == 1
91
+ expect(target).to receive(:id).and_return(1)
92
+ expect(mapper.id).to eq 1
90
93
  end
91
94
 
92
95
  describe '#write with multiparams' do
93
96
  let(:params) {{
94
- 'attr_a' => 'A',
97
+ 'attr_a' => 'A',
95
98
  'dob(0i)' => '1999',
96
99
  'dob(1i)' => '01',
97
100
  'dob(2i)' => '02'
@@ -99,23 +102,23 @@ module FlatMap
99
102
 
100
103
  it 'should assign values properly' do
101
104
  mapper.write(params)
102
- target.attr_a.should == 'A'
103
- target.attr_b.should == Date.new(1999, 1, 2)
105
+ expect(target.attr_a).to eq 'A'
106
+ expect(target.attr_b).to eq Date.new(1999, 1, 2)
104
107
  end
105
108
  end
106
109
 
107
110
  describe '#save_target' do
108
111
  it 'should return true for owned mappers' do
109
- mapper.extension.save_target.should be true
112
+ expect(mapper.extension.save_target).to eq true
110
113
  end
111
114
 
112
115
  it 'should return true if target does not respond to #save' do
113
- mapper.save_target.should be true
116
+ expect(mapper.save_target).to eq true
114
117
  end
115
118
 
116
119
  it 'should save with no validation if target responds to #save' do
117
- target.should_receive(:save).with(:validate => false).and_return(true)
118
- mapper.save_target.should be true
120
+ expect(target).to receive(:save).with(:validate => false).and_return(true)
121
+ expect(mapper.save_target).to eq true
119
122
  end
120
123
  end
121
124
 
@@ -123,28 +126,28 @@ module FlatMap
123
126
  let(:params){{ :attr_a => 'A' }}
124
127
 
125
128
  it 'should write params first' do
126
- mapper.should_receive(:write).with(params)
127
- ActiveRecord::Base.should_receive(:transaction).and_yield
129
+ expect(mapper).to receive(:write).with(params)
130
+ expect(ActiveRecord::Base).to receive(:transaction).and_yield
128
131
  mapper.apply(params)
129
132
  end
130
133
 
131
134
  it 'should not save if not valid' do
132
- mapper.stub(:valid?).and_return(false)
133
- mapper.should_not_receive(:save)
135
+ expect(mapper).to receive(:valid?).and_return(false)
136
+ expect(mapper).not_to receive(:save)
134
137
  mapper.apply(params)
135
138
  end
136
139
 
137
140
  it 'should save if valid' do
138
- mapper.stub(:valid?).and_return(true)
139
- ActiveRecord::Base.should_receive(:transaction).and_yield
140
- mapper.should_receive(:save)
141
+ expect(mapper).to receive(:valid?).and_return(true)
142
+ expect(ActiveRecord::Base).to receive(:transaction).and_yield
143
+ expect(mapper).to receive(:save)
141
144
  mapper.apply(params)
142
145
  end
143
146
  end
144
147
 
145
148
  specify '#shallow_save saves target in a save callbacks' do
146
- mapper.should_receive(:run_callbacks).with(:save).and_yield
147
- mapper.should_receive(:save_target)
149
+ expect(mapper).to receive(:run_callbacks).with(:save).and_yield
150
+ expect(mapper).to receive(:save_target)
148
151
  mapper.shallow_save
149
152
  end
150
153
  end
@@ -28,22 +28,22 @@ module FlatMap
28
28
  before{ mapper.trait(:with_trait).skip! }
29
29
 
30
30
  it 'should completely ignore skipped mounting' do
31
- mapper.should be_valid
32
- mapper.save.should be true
33
- mapper.attr_a.should be_nil
34
- mapper.attr_b.should be_nil
31
+ expect(mapper ).to be_valid
32
+ expect(mapper.save ).to be true
33
+ expect(mapper.attr_a).to be_nil
34
+ expect(mapper.attr_b).to be_nil
35
35
  end
36
36
 
37
37
  it '#use! should enable skipped mounting' do
38
38
  mapper.trait(:with_trait).use!
39
39
 
40
- mapper.should_not be_valid
41
- mapper.attr_a.should == 'a'
42
- mapper.errors[:attr_a].should be_present
40
+ expect(mapper).not_to be_valid
41
+ expect(mapper.attr_a).to eq 'a'
42
+ expect(mapper.errors[:attr_a]).to be_present
43
43
 
44
44
  mapper.attr_a = 5
45
45
  mapper.save
46
- mapper.attr_b.should == 'b'
46
+ expect(mapper.attr_b).to eq 'b'
47
47
  end
48
48
  end
49
49
 
@@ -51,39 +51,40 @@ module FlatMap
51
51
  let(:target){ OpenStruct.new }
52
52
  let(:mapper){ SkippingSpec::SpecMapper.new(target, :with_trait) }
53
53
 
54
- before{ target.stub(:is_a?).with(ActiveRecord::Base).and_return(true) }
54
+ before{ expect(target).
55
+ to receive(:is_a?).at_least(1).times.with(ActiveRecord::Base).and_return(true) }
55
56
 
56
57
  context 'for new record' do
57
58
  before do
58
- target.stub(:new_record?).and_return(true)
59
+ expect(target).to receive(:new_record?).at_least(1).times.and_return(true)
59
60
  mapper.trait(:with_trait).skip!
60
61
  end
61
62
 
62
63
  specify '#skip! should set ivar @destroyed to true' do
63
- target.instance_variable_get('@destroyed').should be true
64
+ expect(target.instance_variable_get('@destroyed')).to be true
64
65
  end
65
66
 
66
67
  specify '#use! should set ivar @destroyed to true' do
67
68
  mapper.trait(:with_trait).use!
68
- target.instance_variable_get('@destroyed').should be false
69
+ expect(target.instance_variable_get('@destroyed')).to be false
69
70
  end
70
71
  end
71
72
 
72
73
  context 'for persisted record' do
73
74
  before do
74
- target.stub(:new_record?).and_return(false)
75
+ expect(target).to receive(:new_record?).at_least(1).times.and_return(false)
75
76
  end
76
77
 
77
78
  specify '#skip! should reload persisted record' do
78
- target.should_receive(:reload)
79
+ expect(target).to receive(:reload)
79
80
  mapper.trait(:with_trait).skip!
80
81
  end
81
82
 
82
83
  specify '#use! should use all nested mountings' do
83
84
  mapper.trait(:with_trait).skip!
84
85
  mock = double('mounting')
85
- mock.should_receive(:use!)
86
- mapper.trait(:with_trait).stub(:all_nested_mountings).and_return([mock])
86
+ expect(mock).to receive(:use!)
87
+ expect(mapper.trait(:with_trait)).to receive(:all_nested_mountings).and_return([mock])
87
88
  mapper.trait(:with_trait).use!
88
89
  end
89
90
  end
@@ -29,24 +29,23 @@ module FlatMap
29
29
  describe 'Working with Target' do
30
30
  describe '#target_class' do
31
31
  it 'should detect target_class from mapper class name' do
32
- ModelMethodsSpec::TargetClassMapper.target_class.should == ModelMethodsSpec::TargetClass
32
+ expect(ModelMethodsSpec::TargetClassMapper.target_class).to eq ModelMethodsSpec::TargetClass
33
33
  end
34
34
 
35
35
  it 'should detect target_class from nearest ancestor when inherited' do
36
- ModelMethodsSpec::InheritedClassMapper.target_class.
37
- should == ModelMethodsSpec::TargetClass
36
+ expect(ModelMethodsSpec::InheritedClassMapper.target_class.ancestors).
37
+ to include ModelMethodsSpec::TargetClass
38
38
  end
39
39
 
40
40
  it 'should use explicit class name if specified' do
41
- ModelMethodsSpec::ExplicitNameMapper.target_class.
42
- should == ModelMethodsSpec::OtherTargetClass
41
+ expect(ModelMethodsSpec::ExplicitNameMapper.target_class.ancestors).
42
+ to include ModelMethodsSpec::OtherTargetClass
43
43
  end
44
44
  end
45
45
 
46
46
  describe '.build' do
47
47
  it 'should use target class to build a new object for mapper' do
48
- ModelMethodsSpec::TargetClassMapper.
49
- should_receive(:new).
48
+ expect(ModelMethodsSpec::TargetClassMapper).to receive(:new).
50
49
  with(kind_of(ModelMethodsSpec::TargetClass), :used_trait)
51
50
  ModelMethodsSpec::TargetClassMapper.build(:used_trait)
52
51
  end
@@ -56,8 +55,8 @@ module FlatMap
56
55
  let(:target){ ModelMethodsSpec::TargetClass.new('a', 'b') }
57
56
 
58
57
  it 'should delegate to target class to find object for mapper' do
59
- ModelMethodsSpec::TargetClass.should_receive(:find).with(1).and_return(target)
60
- ModelMethodsSpec::TargetClassMapper.should_receive(:new).with(target, :used_trait)
58
+ expect(ModelMethodsSpec::TargetClass).to receive(:find).with(1).and_return(target)
59
+ expect(ModelMethodsSpec::TargetClassMapper).to receive(:new).with(target, :used_trait)
61
60
  ModelMethodsSpec::TargetClassMapper.find(1, :used_trait)
62
61
  end
63
62
  end
@@ -67,30 +66,30 @@ module FlatMap
67
66
  let(:mapper){ ModelMethodsSpec::TargetClassMapper.new(target){} }
68
67
 
69
68
  specify '#model_name' do
70
- mapper.model_name.should == 'mapper'
69
+ expect(mapper.model_name).to eq 'mapper'
71
70
  end
72
71
 
73
72
  specify '#to_key should delegate to target' do
74
- target.should_receive(:to_key).and_return(1)
75
- mapper.to_key.should == 1
73
+ expect(target).to receive(:to_key).and_return(1)
74
+ expect(mapper.to_key).to eq 1
76
75
  end
77
76
 
78
77
  specify '#persisted? when target does not respond to :persised?' do
79
- mapper.should_not be_persisted
78
+ expect(mapper).not_to be_persisted
80
79
  end
81
80
 
82
81
  specify '#persisted? when target responds to :persisted?' do
83
- target.stub(:persisted?).and_return(true)
84
- mapper.should be_persisted
82
+ expect(target).to receive(:persisted?).and_return(true)
83
+ expect(mapper).to be_persisted
85
84
  end
86
85
 
87
86
  specify '#id when target does not respond to :id' do
88
- mapper.id.should be_nil
87
+ expect(mapper.id).to be_nil
89
88
  end
90
89
 
91
90
  specify '#id when target responds to :id' do
92
- target.stub(:id).and_return(1)
93
- mapper.id.should == 1
91
+ expect(target).to receive(:id).and_return(1)
92
+ expect(mapper.id).to eq 1
94
93
  end
95
94
 
96
95
  describe '#write with multiparams' do
@@ -103,23 +102,23 @@ module FlatMap
103
102
 
104
103
  it 'should assign values properly' do
105
104
  mapper.write(params)
106
- target.attr_a.should == 'A'
107
- target.attr_b.should == Date.new(1999, 1, 2)
105
+ expect(target.attr_a).to eq 'A'
106
+ expect(target.attr_b).to eq Date.new(1999, 1, 2)
108
107
  end
109
108
  end
110
109
 
111
110
  describe '#save_target' do
112
111
  it 'should return true for owned mappers' do
113
- mapper.extension.save_target.should be true
112
+ expect(mapper.extension.save_target).to be true
114
113
  end
115
114
 
116
115
  it 'should return true if target does not respond to #save' do
117
- mapper.save_target.should be true
116
+ expect(mapper.save_target).to be true
118
117
  end
119
118
 
120
119
  it 'should save with no validation if target responds to #save' do
121
- target.should_receive(:save).with(:validate => false).and_return(true)
122
- mapper.save_target.should be true
120
+ expect(target).to receive(:save).with(:validate => false).and_return(true)
121
+ expect(mapper.save_target).to be true
123
122
  end
124
123
  end
125
124
 
@@ -127,28 +126,28 @@ module FlatMap
127
126
  let(:params){{ :attr_a => 'A' }}
128
127
 
129
128
  it 'should write params first' do
130
- mapper.should_receive(:write).with(params)
131
- ActiveRecord::Base.should_receive(:transaction).and_yield
129
+ expect(mapper).to receive(:write).with(params)
130
+ expect(ActiveRecord::Base).to receive(:transaction).and_yield
132
131
  mapper.apply(params)
133
132
  end
134
133
 
135
134
  it 'should not save if not valid' do
136
- mapper.stub(:valid?).and_return(false)
137
- mapper.should_not_receive(:save)
135
+ expect(mapper).to receive(:valid?).and_return(false)
136
+ expect(mapper).not_to receive(:save)
138
137
  mapper.apply(params)
139
138
  end
140
139
 
141
140
  it 'should save if valid' do
142
- mapper.stub(:valid?).and_return(true)
143
- ActiveRecord::Base.should_receive(:transaction).and_yield
144
- mapper.should_receive(:save)
141
+ expect(mapper).to receive(:valid?).and_return(true)
142
+ expect(ActiveRecord::Base).to receive(:transaction).and_yield
143
+ expect(mapper).to receive(:save)
145
144
  mapper.apply(params)
146
145
  end
147
146
  end
148
147
 
149
148
  specify '#shallow_save saves target in a save callbacks' do
150
- mapper.should_receive(:run_callbacks).with(:save).and_yield
151
- mapper.should_receive(:save_target)
149
+ expect(mapper).to receive(:run_callbacks).with(:save).and_yield
150
+ expect(mapper).to receive(:save_target)
152
151
  mapper.shallow_save
153
152
  end
154
153
  end