given 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +10 -10
- data/Rakefile +5 -4
- data/examples/greed/greed_score_test.rb +73 -0
- data/examples/greed/greed_turner_test.rb +107 -0
- data/examples/greed/score.rb +101 -0
- data/examples/greed/test_helper.rb +2 -0
- data/examples/greed/turner.rb +21 -0
- data/examples/stack_test.rb +10 -10
- data/examples/test_helper.rb +5 -0
- data/lib/given/dsl.rb +11 -0
- data/lib/given/version.rb +1 -1
- data/test/functional/expecting_test.rb +54 -0
- data/test/functional/invalid_use_test.rb +19 -0
- metadata +9 -2
data/README.textile
CHANGED
@@ -24,6 +24,10 @@ class StackBehavior < Given::TestCase
|
|
24
24
|
Invariant { expect(@stack.depth) >= 0 }
|
25
25
|
Invariant { expect(@stack.empty?) == (@stack.depth == 0) }
|
26
26
|
|
27
|
+
def empty_stack
|
28
|
+
@stack = Stack.new
|
29
|
+
end
|
30
|
+
|
27
31
|
Given(:empty_stack) do
|
28
32
|
Then { expect(@stack.depth) == 0 }
|
29
33
|
|
@@ -36,6 +40,12 @@ class StackBehavior < Given::TestCase
|
|
36
40
|
Then { expect(exception.message) =~ /empty/ }
|
37
41
|
end
|
38
42
|
|
43
|
+
def stack_with_two_items
|
44
|
+
empty_stack
|
45
|
+
@stack.push(:bottom_item)
|
46
|
+
@stack.push(:top_item)
|
47
|
+
end
|
48
|
+
|
39
49
|
Given(:stack_with_two_items) {
|
40
50
|
Then { expect(@stack.top) == :top_item }
|
41
51
|
Then { expect(@stack.depth) == 2}
|
@@ -52,16 +62,6 @@ class StackBehavior < Given::TestCase
|
|
52
62
|
Then { expect(@result) == :bottom_item }
|
53
63
|
Then { expect(@stack.depth) == 0 }
|
54
64
|
}
|
55
|
-
|
56
|
-
def empty_stack
|
57
|
-
@stack = Stack.new
|
58
|
-
end
|
59
|
-
|
60
|
-
def stack_with_two_items
|
61
|
-
empty_stack
|
62
|
-
@stack.push(:bottom_item)
|
63
|
-
@stack.push(:top_item)
|
64
|
-
end
|
65
65
|
end
|
66
66
|
</pre>
|
67
67
|
|
data/Rakefile
CHANGED
@@ -3,15 +3,16 @@ require 'rake/testtask'
|
|
3
3
|
|
4
4
|
CLOBBER.include("html")
|
5
5
|
|
6
|
-
task :default => ["test:units", "test:functionals"]
|
6
|
+
task :default => ["test:units", "test:functionals", :examples]
|
7
7
|
|
8
8
|
task :tu => "test:units"
|
9
9
|
task :tf => "test:functionals"
|
10
10
|
|
11
|
-
EXAMPLE_FILES = FileList['examples
|
11
|
+
EXAMPLE_FILES = FileList['examples/**/*_test.rb']
|
12
12
|
desc "Run Examples"
|
13
|
-
|
14
|
-
|
13
|
+
Rake::TestTask.new(:examples) do |t|
|
14
|
+
t.test_files = EXAMPLE_FILES
|
15
|
+
t.warning = true
|
15
16
|
end
|
16
17
|
|
17
18
|
# README Formatting --------------------------------------------------
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
|
2
|
+
|
3
|
+
require 'greed/score'
|
4
|
+
|
5
|
+
class GreedScoreTest < Given::TestCase
|
6
|
+
|
7
|
+
Invariant { @score.bust? == (@score.points == 0) }
|
8
|
+
Invariant {
|
9
|
+
if @score.unused == 0
|
10
|
+
expect(@score.remaining) == 5
|
11
|
+
else
|
12
|
+
expect(@score.remaining) == @score.unused
|
13
|
+
end
|
14
|
+
}
|
15
|
+
|
16
|
+
def points(dice)
|
17
|
+
@score = Greed::Score.for(dice)
|
18
|
+
expect(@score.points)
|
19
|
+
end
|
20
|
+
|
21
|
+
Given do
|
22
|
+
Then { points([]) == 0 }
|
23
|
+
Then { points([5]) == 50 }
|
24
|
+
Then { points([5,5]) == 100 }
|
25
|
+
Then { points([1]) == 100 }
|
26
|
+
Then { points([1,1]) == 200 }
|
27
|
+
Then { points([1,5,2,3,6]) == 150 }
|
28
|
+
Then { points([1,1,1]) == 1000 }
|
29
|
+
Then { points([2,2,2]) == 200 }
|
30
|
+
Then { points([3,3,3]) == 300 }
|
31
|
+
Then { points([1,1,1,1]) == 1100 }
|
32
|
+
Then { points([5,5,5,5]) == 550 }
|
33
|
+
end
|
34
|
+
|
35
|
+
def unused(dice)
|
36
|
+
@score = Greed::Score.for(dice)
|
37
|
+
expect(@score.unused)
|
38
|
+
end
|
39
|
+
|
40
|
+
Given do
|
41
|
+
Then { unused([]) == 0 }
|
42
|
+
Then { unused([1,5,2,2,2]) == 0 }
|
43
|
+
Then { unused([1,5,2,2]) == 2 }
|
44
|
+
end
|
45
|
+
|
46
|
+
def a_zero_score
|
47
|
+
@score = Greed::Score.new
|
48
|
+
end
|
49
|
+
|
50
|
+
Given(:a_zero_score) do
|
51
|
+
Then { expect(@score.points) == 0 }
|
52
|
+
Then { expect(@score.unused) == 0 }
|
53
|
+
Then { expect(@score) == Greed::Score.new(0, 0) }
|
54
|
+
Then { expect(@score).not == Greed::Score.new(1, 0) }
|
55
|
+
Then { expect(@score).not == Greed::Score.new(0, 1) }
|
56
|
+
Then { expect(@score).not == :non_score }
|
57
|
+
end
|
58
|
+
|
59
|
+
Given(:a_zero_score) do
|
60
|
+
Then { expect(@score + 0) == 0 }
|
61
|
+
Then { expect(@score + 100) == 0 }
|
62
|
+
end
|
63
|
+
|
64
|
+
def a_100_point_score
|
65
|
+
@score = Greed::Score.new(100, 4)
|
66
|
+
end
|
67
|
+
|
68
|
+
Given(:a_100_point_score) do
|
69
|
+
Then { expect(@score + 0) == 100 }
|
70
|
+
Then { expect(@score + 200) == 300 }
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'flexmock/test_unit'
|
5
|
+
require 'greed/turner'
|
6
|
+
require 'greed/score'
|
7
|
+
|
8
|
+
class TurnerTest < Given::TestCase
|
9
|
+
Score = Greed::Score
|
10
|
+
|
11
|
+
def a_turner_with_a_player
|
12
|
+
@rolls = []
|
13
|
+
@dice = flexmock("dice")
|
14
|
+
@dice.should_receive(:roll).with(Integer).
|
15
|
+
and_return { |n| @rolls.shift[0,n] }
|
16
|
+
@player = flexmock("player")
|
17
|
+
@player.should_receive(:start_turn => nil,
|
18
|
+
:roll_again? => false,
|
19
|
+
:end_turn => nil).by_default
|
20
|
+
@turner = Greed::Turner.new(@player, @dice)
|
21
|
+
end
|
22
|
+
|
23
|
+
def a_bust_roll
|
24
|
+
@rolls << [2, 3, 4, 4, 6]
|
25
|
+
end
|
26
|
+
|
27
|
+
def a_good_roll
|
28
|
+
@rolls << [1, 2, 2, 3, 3]
|
29
|
+
end
|
30
|
+
|
31
|
+
Given(:a_turner_with_a_player, :a_bust_roll) do
|
32
|
+
When { @turner.take_turn(400) }
|
33
|
+
Expecting do
|
34
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
35
|
+
@player.should_receive(:roll_again?).never
|
36
|
+
@player.should_receive(:end_turn).once.with(0)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Given(:a_turner_with_a_player, :a_good_roll, :a_bust_roll) do
|
41
|
+
When { @turner.take_turn(400) }
|
42
|
+
Expecting do
|
43
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
44
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 4)).and_return(true)
|
45
|
+
@player.should_receive(:end_turn).once.with(0)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
Given(:a_turner_with_a_player, :a_good_roll, :a_bust_roll) do
|
50
|
+
When { @turner.take_turn(400) }
|
51
|
+
Expecting do
|
52
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
53
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 4)).and_return(true)
|
54
|
+
@player.should_receive(:end_turn).once.with(0)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Goal "Show that a player who stops after a good roll gets the score"
|
59
|
+
Given(:a_turner_with_a_player, :a_good_roll, :a_bust_roll) do
|
60
|
+
When { @turner.take_turn(400) }
|
61
|
+
Expecting do
|
62
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
63
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 4)).and_return(false)
|
64
|
+
@player.should_receive(:end_turn).once.with(100)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
Given(:a_turner_with_a_player, :a_good_roll, :a_good_roll, :a_bust_roll) do
|
69
|
+
When { @turner.take_turn(400) }
|
70
|
+
Expecting do
|
71
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
72
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 4)).and_return(true)
|
73
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 3)).and_return(false)
|
74
|
+
@player.should_receive(:end_turn).once.with(200)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def two_good_rolls
|
79
|
+
6.times { a_good_roll }
|
80
|
+
end
|
81
|
+
|
82
|
+
#Goal "Show that a turn ends when roll_again? returns false."
|
83
|
+
Given(:a_turner_with_a_player, :two_good_rolls, :a_bust_roll) do
|
84
|
+
When { @turner.take_turn(400) }
|
85
|
+
Expecting do
|
86
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
87
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 4)).and_return(true)
|
88
|
+
@player.should_receive(:roll_again?).once.with(Score.new(100, 3)).and_return(false)
|
89
|
+
@player.should_receive(:end_turn).once.with(200)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def six_good_rolls
|
94
|
+
6.times { a_good_roll }
|
95
|
+
end
|
96
|
+
|
97
|
+
# Goal "Show that scoring all the dice resets number rolled to 5.
|
98
|
+
Given(:a_turner_with_a_player, :six_good_rolls, :a_bust_roll) do
|
99
|
+
When { @turner.take_turn(400) }
|
100
|
+
Expecting do
|
101
|
+
@player.should_receive(:start_turn).once.with(0, 400)
|
102
|
+
@player.should_receive(:roll_again?).and_return(true).times(5)
|
103
|
+
@player.should_receive(:roll_again?).and_return(false)
|
104
|
+
@player.should_receive(:end_turn).once.with(600)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Greed is a dice game. The rules to Greed varies, depending on who
|
2
|
+
# you talk to, but the rules we are using are:
|
3
|
+
#
|
4
|
+
# * You can roll up to 5 dice
|
5
|
+
#
|
6
|
+
# * Any triplet of ones is worth 1000
|
7
|
+
#
|
8
|
+
# * Any triplet of any other face value is worth 100 times the face
|
9
|
+
# value (e.g. 3 fours is worth 400 points)
|
10
|
+
#
|
11
|
+
# * Any ones not used in a triplet are worth 100 points
|
12
|
+
#
|
13
|
+
# * Any fives not used in a triplet are worth 50 points.
|
14
|
+
#
|
15
|
+
# * Any 2, 3, 4, or 6 faces not used in a triplet are worth 0 points
|
16
|
+
# are are counted as unused dice.
|
17
|
+
#
|
18
|
+
module Greed
|
19
|
+
# Score:
|
20
|
+
# * Tracks the points for a roll of dice
|
21
|
+
# * Reports the points for a roll
|
22
|
+
# * Reports the number of unused faces in a roll.
|
23
|
+
class Score
|
24
|
+
attr_reader :points, :unused
|
25
|
+
|
26
|
+
# Return the score object for a roll. A roll is a list of
|
27
|
+
# integers representing the faces showing after a roll of dice.
|
28
|
+
def self.for(roll)
|
29
|
+
@score = new
|
30
|
+
@score.score(roll)
|
31
|
+
@score
|
32
|
+
end
|
33
|
+
|
34
|
+
def initialize(points=0, unused=0)
|
35
|
+
@points = points
|
36
|
+
@unused = unused
|
37
|
+
end
|
38
|
+
|
39
|
+
def to_s
|
40
|
+
"score<#{points},#{unused}>"
|
41
|
+
end
|
42
|
+
|
43
|
+
def inspect
|
44
|
+
to_s
|
45
|
+
end
|
46
|
+
|
47
|
+
def ==(other)
|
48
|
+
other.kind_of?(Greed::Score) &&
|
49
|
+
points == other.points &&
|
50
|
+
unused == other.unused
|
51
|
+
end
|
52
|
+
|
53
|
+
def remaining
|
54
|
+
unused == 0 ? 5 : unused
|
55
|
+
end
|
56
|
+
|
57
|
+
def bust?
|
58
|
+
points == 0
|
59
|
+
end
|
60
|
+
|
61
|
+
def +(previous_turn_score)
|
62
|
+
bust? ? 0 : previous_turn_score + points
|
63
|
+
end
|
64
|
+
|
65
|
+
def score(roll)
|
66
|
+
(1..6).each do |face|
|
67
|
+
score_face(count_faces(face, roll), face)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def score_face(count, face)
|
72
|
+
if count >= 3 && face == 1
|
73
|
+
count -= 3
|
74
|
+
@points += 1000
|
75
|
+
elsif count >= 3
|
76
|
+
count -= 3
|
77
|
+
@points += face * 100
|
78
|
+
end
|
79
|
+
if face == 1 || face == 5
|
80
|
+
@points += count * score_single(face)
|
81
|
+
else
|
82
|
+
@unused += count
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def score_single(die)
|
87
|
+
if die == 1
|
88
|
+
100
|
89
|
+
elsif die == 5
|
90
|
+
50
|
91
|
+
else
|
92
|
+
0
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def count_faces(face, dice)
|
97
|
+
dice.select { |f| f == face }.size
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'greed/score'
|
2
|
+
|
3
|
+
module Greed
|
4
|
+
class Turner
|
5
|
+
def initialize(player, dice=d)
|
6
|
+
@dice = dice
|
7
|
+
@player = player
|
8
|
+
end
|
9
|
+
|
10
|
+
def take_turn(highest_score)
|
11
|
+
@player.start_turn(0, highest_score)
|
12
|
+
turn_score = 0
|
13
|
+
score = Score.new(0,0)
|
14
|
+
begin
|
15
|
+
score = Score.for(@dice.roll(score.unused.nonzero? || 5))
|
16
|
+
turn_score = score + turn_score
|
17
|
+
end while ! score.bust? && @player.roll_again?(score)
|
18
|
+
@player.end_turn(turn_score)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/examples/stack_test.rb
CHANGED
@@ -5,6 +5,10 @@ class StackBehavior < Given::TestCase
|
|
5
5
|
Invariant { expect(@stack.depth) >= 0 }
|
6
6
|
Invariant { expect(@stack.empty?) == (@stack.depth == 0) }
|
7
7
|
|
8
|
+
def empty_stack
|
9
|
+
@stack = Stack.new
|
10
|
+
end
|
11
|
+
|
8
12
|
Given(:empty_stack) do
|
9
13
|
Then { expect(@stack.depth) == 0 }
|
10
14
|
|
@@ -17,6 +21,12 @@ class StackBehavior < Given::TestCase
|
|
17
21
|
Then { expect(exception.message) =~ /empty/ }
|
18
22
|
end
|
19
23
|
|
24
|
+
def stack_with_two_items
|
25
|
+
empty_stack
|
26
|
+
@stack.push(:bottom_item)
|
27
|
+
@stack.push(:top_item)
|
28
|
+
end
|
29
|
+
|
20
30
|
Given(:stack_with_two_items) {
|
21
31
|
Then { expect(@stack.top) == :top_item }
|
22
32
|
Then { expect(@stack.depth) == 2}
|
@@ -33,14 +43,4 @@ class StackBehavior < Given::TestCase
|
|
33
43
|
Then { expect(@result) == :bottom_item }
|
34
44
|
Then { expect(@stack.depth) == 0 }
|
35
45
|
}
|
36
|
-
|
37
|
-
def empty_stack
|
38
|
-
@stack = Stack.new
|
39
|
-
end
|
40
|
-
|
41
|
-
def stack_with_two_items
|
42
|
-
empty_stack
|
43
|
-
@stack.push(:bottom_item)
|
44
|
-
@stack.push(:top_item)
|
45
|
-
end
|
46
46
|
end
|
data/lib/given/dsl.rb
CHANGED
@@ -25,6 +25,7 @@ module Given
|
|
25
25
|
@_given_setup_codes ||= []
|
26
26
|
@_given_invariant_codes ||= []
|
27
27
|
@_given_when_code = DO_NOTHING
|
28
|
+
@_given_mock_codes = []
|
28
29
|
@_given_exception_class = nil
|
29
30
|
old_setups = @_given_setup_codes
|
30
31
|
old_invariants = @_given_invariant_codes
|
@@ -40,9 +41,17 @@ module Given
|
|
40
41
|
def When(&when_code)
|
41
42
|
_given_must_have_context("When")
|
42
43
|
@_given_when_code = Code.new('W', when_code)
|
44
|
+
@_given_mock_codes = []
|
45
|
+
|
43
46
|
@_given_exception_class = nil
|
44
47
|
end
|
45
48
|
|
49
|
+
def Expecting(&mock_code)
|
50
|
+
_given_must_have_context("Mock")
|
51
|
+
@_given_mock_codes << AnonymousCode.new(mock_code)
|
52
|
+
Then { true }
|
53
|
+
end
|
54
|
+
|
46
55
|
def Then(&then_code)
|
47
56
|
_given_must_have_context("Then")
|
48
57
|
_given_make_test_method("Then", Code.new('T', then_code), @_given_exception_class)
|
@@ -86,9 +95,11 @@ module Given
|
|
86
95
|
def _given_make_test_method(clause, then_code, exception_class)
|
87
96
|
setup_codes = @_given_setup_codes
|
88
97
|
when_code = @_given_when_code
|
98
|
+
mock_codes = @_given_mock_codes
|
89
99
|
invariant_codes = @_given_invariant_codes
|
90
100
|
define_method _given_test_name(setup_codes, when_code, then_code) do
|
91
101
|
setup_codes.each do |s| send s end
|
102
|
+
mock_codes.each do |m| m.run(self) end
|
92
103
|
if exception_class.nil?
|
93
104
|
when_code.run(self)
|
94
105
|
else
|
data/lib/given/version.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test/test_helper'
|
2
|
+
|
3
|
+
require 'given'
|
4
|
+
|
5
|
+
class ExpectingTest < GivenTestCase
|
6
|
+
def test_mocks_are_called_before_when
|
7
|
+
assert_all_pass do
|
8
|
+
def trace
|
9
|
+
@trace ||= []
|
10
|
+
end
|
11
|
+
Given do
|
12
|
+
When { trace << :when }
|
13
|
+
Expecting { trace << :mock }
|
14
|
+
Then { expect(trace) == [:mock, :when] }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_mocks_without_when_still_runs_a_test
|
20
|
+
assert_all_pass do
|
21
|
+
Given do
|
22
|
+
Expecting { }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_mocks_dont_leak_across_whens
|
28
|
+
assert_all_pass do
|
29
|
+
def trace
|
30
|
+
@trace ||= []
|
31
|
+
end
|
32
|
+
Given do
|
33
|
+
Expecting { trace << :m1 }
|
34
|
+
|
35
|
+
When { }
|
36
|
+
Then { expect(trace) == [] }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_mocks_will_stack
|
42
|
+
assert_all_pass do
|
43
|
+
def trace
|
44
|
+
@trace ||= []
|
45
|
+
end
|
46
|
+
Given do
|
47
|
+
When { }
|
48
|
+
Expecting { trace << :m1 }
|
49
|
+
Expecting { trace << :m2 }
|
50
|
+
Then { expect(trace) == [:m1, :m2] }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -39,6 +39,25 @@ class InvalidUseTest < GivenTestCase
|
|
39
39
|
assert_equal "A When clause must be inside a given block", ex.message
|
40
40
|
end
|
41
41
|
|
42
|
+
def test_mock_must_be_inside_given
|
43
|
+
ex = assert_raise(Given::UsageError) do
|
44
|
+
run_tests do
|
45
|
+
Expecting { }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
assert_equal "A Mock clause must be inside a given block", ex.message
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_mock_must_be_inside_given_part_2
|
52
|
+
ex = assert_raise(Given::UsageError) do
|
53
|
+
run_tests do
|
54
|
+
Given do end
|
55
|
+
Expecting { }
|
56
|
+
end
|
57
|
+
end
|
58
|
+
assert_equal "A Mock clause must be inside a given block", ex.message
|
59
|
+
end
|
60
|
+
|
42
61
|
def test_fails_with_must_be_inside_given
|
43
62
|
ex = assert_raise(Given::UsageError) do
|
44
63
|
run_tests do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: given
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-26 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/given/test_unit.rb
|
39
39
|
- lib/given/version.rb
|
40
40
|
- lib/given.rb
|
41
|
+
- test/functional/expecting_test.rb
|
41
42
|
- test/functional/fails_with_test.rb
|
42
43
|
- test/functional/invalid_use_test.rb
|
43
44
|
- test/functional/invariant_test.rb
|
@@ -48,8 +49,14 @@ files:
|
|
48
49
|
- test/given/expectation_test.rb
|
49
50
|
- test/given/test_unit/adapter_contract.rb
|
50
51
|
- test/test_helper.rb
|
52
|
+
- examples/greed/greed_score_test.rb
|
53
|
+
- examples/greed/greed_turner_test.rb
|
54
|
+
- examples/greed/score.rb
|
55
|
+
- examples/greed/test_helper.rb
|
56
|
+
- examples/greed/turner.rb
|
51
57
|
- examples/stack.rb
|
52
58
|
- examples/stack_test.rb
|
59
|
+
- examples/test_helper.rb
|
53
60
|
has_rdoc: true
|
54
61
|
homepage: http://github.com/jimweirich/Given
|
55
62
|
licenses: []
|