Skip to content

Commit 9098e4c

Browse files
committed
Moved sell_in specs into invariants.
1 parent 56ffaa3 commit 9098e4c

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

gilded_rose_spec.rb

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,20 @@
1313
context "normal item" do
1414
Given(:name) { "NORMAL ITEM" }
1515

16+
Invariant { item.sell_in.should == initial_sell_in-1 }
17+
1618
context "before sell date" do
1719
Then { item.quality.should == initial_quality-1 }
18-
Then { item.sell_in.should == initial_sell_in-1 }
1920
end
2021

2122
context "on sell date" do
2223
Given(:initial_sell_in) { 0 }
2324
Then { item.quality.should == initial_quality-2 }
24-
Then { item.sell_in.should == initial_sell_in-1 }
2525
end
2626

2727
context "after sell date" do
2828
Given(:initial_sell_in) { -10 }
2929
Then { item.quality.should == initial_quality-2 }
30-
Then { item.sell_in.should == initial_sell_in-1 }
3130
end
3231

3332
context "of zero quality" do
@@ -39,38 +38,39 @@
3938
context "Aged Brie" do
4039
Given(:name) { "Aged Brie" }
4140

41+
Invariant { item.sell_in.should == initial_sell_in-1 }
42+
4243
context "before sell date" do
4344
Then { item.quality.should == initial_quality+1 }
44-
Then { item.sell_in.should == initial_sell_in-1 }
4545

4646
context "with max quality" do
4747
Given(:initial_quality) { 50 }
4848
Then { item.quality.should == initial_quality }
49-
Then { item.sell_in.should == initial_sell_in-1 }
5049
end
5150
end
5251

5352
context "on sell date" do
5453
Given(:initial_sell_in) { 0 }
5554
Then { item.quality.should == initial_quality+2 }
56-
Then { item.sell_in.should == initial_sell_in-1 }
55+
56+
context "near max quality" do
57+
Given(:initial_quality) { 49 }
58+
Then { item.quality.should == 50 }
59+
end
5760

5861
context "with max quality" do
5962
Given(:initial_quality) { 50 }
6063
Then { item.quality.should == initial_quality }
61-
Then { item.sell_in.should == initial_sell_in-1 }
6264
end
6365
end
6466

6567
context "after sell date" do
6668
Given(:initial_sell_in) { -10 }
6769
Then { item.quality.should == initial_quality+2 }
68-
Then { item.sell_in.should == initial_sell_in-1 }
6970

7071
context "with max quality" do
7172
Given(:initial_quality) { 50 }
7273
Then { item.quality.should == initial_quality }
73-
Then { item.sell_in.should == initial_sell_in-1 }
7474
end
7575
end
7676
end
@@ -79,42 +79,40 @@
7979
Given(:initial_quality) { 80 }
8080
Given(:name) { "Sulfuras, Hand of Ragnaros" }
8181

82+
Invariant { item.sell_in.should == initial_sell_in }
83+
8284
context "before sell date" do
8385
Then { item.quality.should == initial_quality }
84-
Then { item.sell_in.should == initial_sell_in }
8586
end
8687

8788
context "on sell date" do
8889
Given(:initial_sell_in) { 0 }
8990
Then { item.quality.should == initial_quality }
90-
Then { item.sell_in.should == initial_sell_in }
9191
end
9292

9393
context "after sell date" do
9494
Given(:initial_sell_in) { -10 }
9595
Then { item.quality.should == initial_quality }
96-
Then { item.sell_in.should == initial_sell_in }
9796
end
9897
end
9998

10099
context "Backstage pass" do
101100
Given(:name) { "Backstage passes to a TAFKAL80ETC concert" }
102101

102+
Invariant { item.sell_in.should == initial_sell_in-1 }
103+
103104
context "long before sell date" do
104105
Given(:initial_sell_in) { 11 }
105106
Then { item.quality.should == initial_quality+1 }
106-
Then { item.sell_in.should == initial_sell_in-1 }
107107

108108
context "at max quality" do
109109
Given(:initial_quality) { 50 }
110-
Then { item.quality.should == initial_quality }
111110
end
112111
end
113112

114113
context "medium close to sell date (upper bound)" do
115114
Given(:initial_sell_in) { 10 }
116115
Then { item.quality.should == initial_quality+2 }
117-
Then { item.sell_in.should == initial_sell_in-1 }
118116

119117
context "at max quality" do
120118
Given(:initial_quality) { 50 }
@@ -125,7 +123,6 @@
125123
context "medium close to sell date (lower bound)" do
126124
Given(:initial_sell_in) { 6 }
127125
Then { item.quality.should == initial_quality+2 }
128-
Then { item.sell_in.should == initial_sell_in-1 }
129126

130127
context "at max quality" do
131128
Given(:initial_quality) { 50 }
@@ -136,7 +133,6 @@
136133
context "very close to sell date (upper bound)" do
137134
Given(:initial_sell_in) { 5 }
138135
Then { item.quality.should == initial_quality+3 }
139-
Then { item.sell_in.should == initial_sell_in-1 }
140136

141137
context "at max quality" do
142138
Given(:initial_quality) { 50 }
@@ -147,7 +143,6 @@
147143
context "very close to sell date (lower bound)" do
148144
Given(:initial_sell_in) { 1 }
149145
Then { item.quality.should == initial_quality+3 }
150-
Then { item.sell_in.should == initial_sell_in-1 }
151146

152147
context "at max quality" do
153148
Given(:initial_quality) { 50 }
@@ -158,24 +153,23 @@
158153
context "on sell date" do
159154
Given(:initial_sell_in) { 0 }
160155
Then { item.quality.should == 0 }
161-
Then { item.sell_in.should == initial_sell_in-1 }
162156
end
163157

164158
context "after sell date" do
165159
Given(:initial_sell_in) { -10 }
166160
Then { item.quality.should == 0 }
167-
Then { item.sell_in.should == initial_sell_in-1 }
168161
end
169162
end
170163

171164
context "conjured item" do
172165
before { pending }
173166
Given(:name) { "Conjured Mana Cake" }
174167

168+
Invariant { item.sell_in.should == initial_sell_in-1 }
169+
175170
context "before the sell date" do
176171
Given(:initial_sell_in) { 5 }
177172
Then { item.quality.should == initial_quality-2 }
178-
Then { item.sell_in.should == initial_sell_in-1 }
179173

180174
context "at zero quality" do
181175
Given(:initial_quality) { 0 }
@@ -186,7 +180,6 @@
186180
context "on sell date" do
187181
Given(:initial_sell_in) { 0 }
188182
Then { item.quality.should == initial_quality-4 }
189-
Then { item.sell_in.should == initial_sell_in-1 }
190183

191184
context "at zero quality" do
192185
Given(:initial_quality) { 0 }
@@ -197,7 +190,6 @@
197190
context "after sell date" do
198191
Given(:initial_sell_in) { -10 }
199192
Then { item.quality.should == initial_quality-4 }
200-
Then { item.sell_in.should == initial_sell_in-1 }
201193

202194
context "at zero quality" do
203195
Given(:initial_quality) { 0 }

0 commit comments

Comments
 (0)