greenpepper-ruby 0.0.1
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/bin/greenpepperize +71 -0
- data/bin/greenpepperrails +33 -0
- data/bin/greenpepperruby +15 -0
- data/data/greenpepper.rake +37 -0
- data/data/helper.rb +32 -0
- data/data/tags +6 -0
- data/lib/greenpepper/argumentparser.rb +161 -0
- data/lib/greenpepper/common/loadpath.rb +7 -0
- data/lib/greenpepper/context/htmlcontext.rb +26 -0
- data/lib/greenpepper/converter.rb +347 -0
- data/lib/greenpepper/core.rb +152 -0
- data/lib/greenpepper/example/collectionexample.rb +305 -0
- data/lib/greenpepper/example/dowithexample.rb +192 -0
- data/lib/greenpepper/example/exampleheader.rb +41 -0
- data/lib/greenpepper/example/examplewithfixture.rb +73 -0
- data/lib/greenpepper/example/executionresults.rb +160 -0
- data/lib/greenpepper/example/fieldaccessor.rb +36 -0
- data/lib/greenpepper/example/freetextexample.rb +51 -0
- data/lib/greenpepper/example/importexample.rb +39 -0
- data/lib/greenpepper/example/nameresolver.rb +69 -0
- data/lib/greenpepper/example/ruleforexample.rb +117 -0
- data/lib/greenpepper/example/setupexample.rb +79 -0
- data/lib/greenpepper/example/silentexample.rb +14 -0
- data/lib/greenpepper/example/unknownexample.rb +17 -0
- data/lib/greenpepper/exception/greenpepperexception.rb +57 -0
- data/lib/greenpepper/executionunit.rb +39 -0
- data/lib/greenpepper/factory/collectionexamplefactory.rb +59 -0
- data/lib/greenpepper/factory/dowithexamplefactory.rb +71 -0
- data/lib/greenpepper/factory/examplefactory.rb +14 -0
- data/lib/greenpepper/factory/freetextexamplefactory.rb +29 -0
- data/lib/greenpepper/factory/htmlexamplefactory.rb +49 -0
- data/lib/greenpepper/factory/importexamplefactory.rb +27 -0
- data/lib/greenpepper/factory/ruleforexamplefactory.rb +46 -0
- data/lib/greenpepper/factory/setupexamplefactory.rb +31 -0
- data/lib/greenpepper/factory/silentexamplefactory.rb +21 -0
- data/lib/greenpepper/factory/unknownexamplefactory.rb +16 -0
- data/lib/greenpepper/freetext.rb +164 -0
- data/lib/greenpepper/grammar/array.treetop +51 -0
- data/lib/greenpepper/grammar/arrayparser.rb +14 -0
- data/lib/greenpepper/greenpepperconfig.rb +19 -0
- data/lib/greenpepper/greenpeppertask.rb +60 -0
- data/lib/greenpepper/logger.rb +45 -0
- data/lib/greenpepper/parser/freetextparser.rb +96 -0
- data/lib/greenpepper/parser/htmlparser.rb +70 -0
- data/lib/greenpepper/parser/scenario.rb +25 -0
- data/lib/greenpepper/parser/table.rb +37 -0
- data/lib/greenpepper/parser/wikiparser.rb +26 -0
- data/lib/greenpepper/pass/freetextpass.rb +24 -0
- data/lib/greenpepper/pass/greenpepperpass.rb +92 -0
- data/lib/greenpepper/pass/tablepass.rb +38 -0
- data/lib/greenpepper/railsargumentparser.rb +46 -0
- data/lib/greenpepper/redpeppertask.rb +89 -0
- data/lib/greenpepper/repository/atlassianrepository.rb +100 -0
- data/lib/greenpepper/writer/consolewriter.rb +21 -0
- data/lib/greenpepper/writer/freetextresult.rb +233 -0
- data/lib/greenpepper/writer/freetextwriter.rb +44 -0
- data/lib/greenpepper/writer/html.rb +14 -0
- data/lib/greenpepper/writer/htmldocwriter.rb +82 -0
- data/lib/greenpepper/writer/htmlresult.rb +192 -0
- data/lib/greenpepper/writer/htmlwriter.rb +112 -0
- data/lib/greenpepper/writer/output.rb +26 -0
- data/lib/greenpepper/writer/result.rb +35 -0
- data/lib/greenpepper/writer/xmlwriter.rb +32 -0
- data/test/coreseedstest.rb +39 -0
- data/test/greenpepper/argumentparsertest.rb +162 -0
- data/test/greenpepper/common/loadpathtest.rb +24 -0
- data/test/greenpepper/common/stattest.rb +186 -0
- data/test/greenpepper/convertertest.rb +371 -0
- data/test/greenpepper/coretest.rb +159 -0
- data/test/greenpepper/example/collectionexampletest.rb +484 -0
- data/test/greenpepper/example/dowithexampletest.rb +148 -0
- data/test/greenpepper/example/exampletest.rb +28 -0
- data/test/greenpepper/example/freetextexampletest.rb +151 -0
- data/test/greenpepper/example/importexampletest.rb +79 -0
- data/test/greenpepper/example/nameresolvertest.rb +56 -0
- data/test/greenpepper/example/ruleforexampletest.rb +225 -0
- data/test/greenpepper/example/setupexampletest.rb +140 -0
- data/test/greenpepper/example/silentexampletest.rb +17 -0
- data/test/greenpepper/example/unknownexampletest.rb +17 -0
- data/test/greenpepper/factory/collectionexamplefactorytest.rb +51 -0
- data/test/greenpepper/factory/dowithexamplefactorytest.rb +48 -0
- data/test/greenpepper/factory/examplefactorytest.rb +88 -0
- data/test/greenpepper/factory/freetextexamplefactorytest.rb +54 -0
- data/test/greenpepper/factory/importexamplefactorytest.rb +40 -0
- data/test/greenpepper/factory/ruleforexamplefactorytest.rb +55 -0
- data/test/greenpepper/factory/setupexamplefactorytest.rb +29 -0
- data/test/greenpepper/factory/silentexamplefactorytest.rb +38 -0
- data/test/greenpepper/freetexttest.rb +222 -0
- data/test/greenpepper/grammar/arrayparsertest.rb +45 -0
- data/test/greenpepper/loggertest.rb +26 -0
- data/test/greenpepper/parser/freetextparsertest.rb +124 -0
- data/test/greenpepper/parser/htmlparsertest.rb +77 -0
- data/test/greenpepper/parser/wikiparsertest.rb +21 -0
- data/test/greenpepper/pass/freetextpasstest.rb +54 -0
- data/test/greenpepper/pass/greenpepperpasstest.rb +47 -0
- data/test/greenpepper/pass/tablepasstest.rb +23 -0
- data/test/greenpepper/repository/atlassionrepositorytest.rb +85 -0
- data/test/greenpepper/writer/freetextwritertest.rb +301 -0
- data/test/greenpepper/writer/htmlcollectionwritertest.rb +145 -0
- data/test/greenpepper/writer/htmldowithwritertest.rb +87 -0
- data/test/greenpepper/writer/htmlruleforwritertest.rb +147 -0
- data/test/greenpepper/writer/htmlsetupwritertest.rb +107 -0
- data/test/greenpepper/writer/htmlstatresulttest.rb +118 -0
- data/test/greenpepper/writer/htmlwriterpositiontest.rb +53 -0
- data/test/greenpepper/writer/writertest.rb +33 -0
- data/test/greenpepper/writer/xmlwritertest.rb +34 -0
- data/test/integration/collectionexampleintegrationtest.rb +64 -0
- data/test/integration/errorhandlingintegrationtest.rb +68 -0
- data/test/integration/freetextexampleintegrationtest.rb +75 -0
- data/test/integration/greenpepperexecutableintegrationtest.rb +22 -0
- data/test/integration/importexampleintegrationtest.rb +41 -0
- data/test/integration/interpretationordertest.rb +48 -0
- data/test/integration/ruleforexampleintegrationtest.rb +102 -0
- data/test/integration/securityintegrationtest.rb +30 -0
- data/test/integration/setupexampleintegrationtest.rb +31 -0
- data/test/integration/silentexampleintegrationtest.rb +29 -0
- data/test/task/greenpeppertasktest.rb +96 -0
- data/test/task/redpeppertasktest.rb +120 -0
- data/vendor/accents.rb +85 -0
- metadata +234 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
|
3
|
+
date: Februrary 24, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
require 'test/helper/assert.rb'
|
|
8
|
+
require 'test/fixtures/fixture.rb'
|
|
9
|
+
require 'greenpepper/example/ruleforexample'
|
|
10
|
+
|
|
11
|
+
include GreenPepper
|
|
12
|
+
|
|
13
|
+
class RuleForExampleTest < Test::Unit::TestCase
|
|
14
|
+
def test_for_example_one_input_one_output
|
|
15
|
+
ex = base_equality_ruleforexample
|
|
16
|
+
|
|
17
|
+
ex.add_row ["1","1"]
|
|
18
|
+
results = ex.execute
|
|
19
|
+
assert_results_success results
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_for_example_two_input_one_output
|
|
23
|
+
ex = RuleForExample.new "RuleForExampleSumFixture"
|
|
24
|
+
ex.add_input_header "operand1"
|
|
25
|
+
ex.add_input_header "operand2"
|
|
26
|
+
ex.add_output_header "sum"
|
|
27
|
+
ex.add_row ["1","2","3"]
|
|
28
|
+
results = ex.execute
|
|
29
|
+
assert_results_success results
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_for_example_two_input_two_output
|
|
33
|
+
ex = base_add_sub_ruleforexample
|
|
34
|
+
|
|
35
|
+
ex.add_row ["1","2","3","-1"]
|
|
36
|
+
results = ex.execute
|
|
37
|
+
assert_results_success results
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_for_example_two_input_two_output_failure
|
|
41
|
+
ex = base_add_sub_ruleforexample
|
|
42
|
+
|
|
43
|
+
ex.add_row ["2","5","7","1"]
|
|
44
|
+
results = ex.execute
|
|
45
|
+
assert_equal 1, results.failures
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_for_example_one_input_one_output_two_rows
|
|
49
|
+
ex = base_equality_ruleforexample
|
|
50
|
+
|
|
51
|
+
ex.add_row ["1","1"]
|
|
52
|
+
ex.add_row ["2","2"]
|
|
53
|
+
results = ex.execute
|
|
54
|
+
assert_results_success results
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_for_example_three_inputs_two_outputs_two_rows
|
|
58
|
+
ex = RuleForExample.new "RuleForExampleAddSubFixtureThreeOperand"
|
|
59
|
+
ex.add_input_header "operand1"
|
|
60
|
+
ex.add_input_header "operand2"
|
|
61
|
+
ex.add_output_header "sum"
|
|
62
|
+
ex.add_input_header "operand3"
|
|
63
|
+
ex.add_output_header "sub"
|
|
64
|
+
ex.add_row ["1","2","3","1","-2"]
|
|
65
|
+
ex.add_row ["3","4","7","3","-4"]
|
|
66
|
+
results = ex.execute
|
|
67
|
+
assert_results_success results
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_for_example_test_failure_count
|
|
71
|
+
ex = base_equality_ruleforexample
|
|
72
|
+
|
|
73
|
+
ex.add_row ["1","2"]
|
|
74
|
+
ex.add_row ["3","3"]
|
|
75
|
+
ex.add_row ["5","9"]
|
|
76
|
+
ex.add_row ["8","8"]
|
|
77
|
+
|
|
78
|
+
results = ex.execute
|
|
79
|
+
assert_equal 2, results.failures
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_for_example_test_success_count
|
|
83
|
+
ex = base_equality_ruleforexample
|
|
84
|
+
|
|
85
|
+
ex.add_row ["1","1"]
|
|
86
|
+
ex.add_row ["3","3"]
|
|
87
|
+
ex.add_row ["5","-9"]
|
|
88
|
+
ex.add_row ["8","6"]
|
|
89
|
+
|
|
90
|
+
results = ex.execute
|
|
91
|
+
assert_equal 2, results.successes
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def test_for_example_result_per_output
|
|
95
|
+
#all true
|
|
96
|
+
ex = base_equality_ruleforexample
|
|
97
|
+
|
|
98
|
+
ex.add_row ["1","1"]
|
|
99
|
+
results = ex.execute
|
|
100
|
+
|
|
101
|
+
results.each { |stat|
|
|
102
|
+
assert !stat.failure?
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#all false
|
|
106
|
+
ex = base_equality_ruleforexample
|
|
107
|
+
|
|
108
|
+
ex.add_row ["1","2"]
|
|
109
|
+
results = ex.execute
|
|
110
|
+
|
|
111
|
+
assert results.at(2,1).failure?
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_for_example_with_exception
|
|
115
|
+
ex = RuleForExample.new "RaiseErrorFixture"
|
|
116
|
+
ex.add_input_header "operand_1"
|
|
117
|
+
ex.add_output_header "raise_error"
|
|
118
|
+
ex.add_row ["1","2"]
|
|
119
|
+
results = ex.execute
|
|
120
|
+
|
|
121
|
+
assert_equal RuntimeError, results.at(2,1).exception.class
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_for_example_non_existing_Fixture
|
|
125
|
+
ex = RuleForExample.new "Non existing fixture"
|
|
126
|
+
ex.add_input_header "value"
|
|
127
|
+
ex.add_output_header "equality"
|
|
128
|
+
ex.add_row ["1","1"]
|
|
129
|
+
results = ex.execute
|
|
130
|
+
|
|
131
|
+
assert_results_fixture_not_found(results)
|
|
132
|
+
assert_equal results.errors, 1
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def test_for_example_no_expected_result_should_return_value
|
|
136
|
+
ex = base_add_sub_ruleforexample
|
|
137
|
+
|
|
138
|
+
ex.add_row ["1","2","",""]
|
|
139
|
+
results = ex.execute
|
|
140
|
+
|
|
141
|
+
assert_equal results.ignored, 2
|
|
142
|
+
assert_results_success results
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def test_for_example_should_initialize_fixture_with_initial_arguments
|
|
146
|
+
ex = RuleForExample.new "RuleForExampleWithInitialValues"
|
|
147
|
+
ex.add_fixture_argument '1'
|
|
148
|
+
ex.add_fixture_argument '2'
|
|
149
|
+
ex.add_output_header "initial_1"
|
|
150
|
+
ex.add_output_header "initial_2"
|
|
151
|
+
ex.add_row ["1", "2"]
|
|
152
|
+
results = ex.execute
|
|
153
|
+
|
|
154
|
+
assert_results_success results
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def test_for_example_with_name_of_output_column_with_no_function_corresponding_to_the_name
|
|
158
|
+
ex = RuleForExample.new "RuleForExampleEqualityFixture"
|
|
159
|
+
ex.add_input_header "value"
|
|
160
|
+
ex.add_output_header "wrong name"
|
|
161
|
+
|
|
162
|
+
ex.add_row ["1","1"]
|
|
163
|
+
results = ex.execute
|
|
164
|
+
assert_equal 1, results.errors
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def test_for_example_with_expected_result_is_an_error
|
|
168
|
+
ex = RuleForExample.new "RaiseErrorFixture"
|
|
169
|
+
ex.add_input_header "operand 1"
|
|
170
|
+
ex.add_output_header "raise_error"
|
|
171
|
+
ex.add_row ["1","Error"]
|
|
172
|
+
results = ex.execute
|
|
173
|
+
assert_results_success results
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def test_for_example_with_expect_an_error_but_do_not_encounter_one
|
|
177
|
+
ex = base_equality_ruleforexample
|
|
178
|
+
ex.add_row ["1","Error"]
|
|
179
|
+
results = ex.execute
|
|
180
|
+
assert_equal 1, results.failures
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def test_missing_method_in_rule_for_should_not_return_address_in_error
|
|
184
|
+
ex = RuleForExample.new "Object"
|
|
185
|
+
ex.add_output_header('toto')
|
|
186
|
+
ex.add_row [' aaa ']
|
|
187
|
+
results = ex.execute
|
|
188
|
+
res = results.at(1, 0)
|
|
189
|
+
|
|
190
|
+
assert_equal 1, results.errors
|
|
191
|
+
assert res.exception.is_a?(GreenPepperMissingHeaderError)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def test_errors_in_results_when_header_accessor_missing_in_fixture
|
|
195
|
+
ex = RuleForExample.new "RuleFor_example_equality_fixture"
|
|
196
|
+
ex.add_input_header "value"
|
|
197
|
+
ex.add_input_header "non existing header"
|
|
198
|
+
ex.add_output_header "equality"
|
|
199
|
+
ex.add_row ['1', '2', '1']
|
|
200
|
+
|
|
201
|
+
results = ex.execute
|
|
202
|
+
|
|
203
|
+
assert results.at(1, 1).exception.is_a?(GreenPepperMissingHeaderError)
|
|
204
|
+
assert results.at(2, 2).success?
|
|
205
|
+
|
|
206
|
+
assert_equal 1, results.errors
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
private
|
|
210
|
+
def base_equality_ruleforexample
|
|
211
|
+
ex = RuleForExample.new "RuleForExampleEqualityFixture"
|
|
212
|
+
ex.add_input_header "value"
|
|
213
|
+
ex.add_output_header "equality"
|
|
214
|
+
ex
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
def base_add_sub_ruleforexample
|
|
218
|
+
ex = RuleForExample.new "RuleForExampleAddSubFixture"
|
|
219
|
+
ex.add_input_header "operand1"
|
|
220
|
+
ex.add_input_header "operand2"
|
|
221
|
+
ex.add_output_header "sum"
|
|
222
|
+
ex.add_output_header "sub"
|
|
223
|
+
ex
|
|
224
|
+
end
|
|
225
|
+
end
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Martin Provencher (martin.provencher@usherbrooke.ca)
|
|
3
|
+
date: March 23, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
require 'test/fixtures/setupfixture'
|
|
8
|
+
require 'test/helper/assert'
|
|
9
|
+
require 'greenpepper/example/setupexample'
|
|
10
|
+
require 'greenpepper/example/nameresolver'
|
|
11
|
+
|
|
12
|
+
include GreenPepper
|
|
13
|
+
|
|
14
|
+
class SetupExampleTest < Test::Unit::TestCase
|
|
15
|
+
def setup
|
|
16
|
+
$global_one_value_tab = nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_example_execution_calls_enter_row
|
|
20
|
+
ex = SetupExample.new "SetupCreateGlobalTableOneValue"
|
|
21
|
+
ex.add_header "h1"
|
|
22
|
+
ex.add_header "h2"
|
|
23
|
+
ex.add_header "h3"
|
|
24
|
+
ex.add_row ["value 11", "value 12", "value 13" ]
|
|
25
|
+
ex.add_row ["value 21", "value 22", "value 23" ]
|
|
26
|
+
ex.add_row ["value 31", "value 32", "value 33" ]
|
|
27
|
+
results = ex.execute
|
|
28
|
+
|
|
29
|
+
expected = ["value 11", "value 12", "value 13",
|
|
30
|
+
"value 21", "value 22", "value 23",
|
|
31
|
+
"value 31", "value 32", "value 33" ]
|
|
32
|
+
|
|
33
|
+
assert_equal expected, $global_one_value_tab
|
|
34
|
+
assert_results_equals results, 0, 0, 0
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_example_execution_returns_error_results
|
|
39
|
+
ex = SetupExample.new "Setup create_GLOBAL Table_OneValue"
|
|
40
|
+
ex.add_header "h1"
|
|
41
|
+
ex.add_header "h2"
|
|
42
|
+
ex.add_header "h3"
|
|
43
|
+
ex.add_row ["value 11", "value 12", "value 13" ]
|
|
44
|
+
ex.add_row ["value 21", "value 22", "value 23" ]
|
|
45
|
+
ex.add_row ["value 31", "value 32" ] # missing a value
|
|
46
|
+
results = ex.execute
|
|
47
|
+
|
|
48
|
+
assert_results_equals results, 0, 1, 0
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_nil_error
|
|
52
|
+
ex = SetupExample.new "SetupNilFixture"
|
|
53
|
+
ex.add_header "h1"
|
|
54
|
+
ex.add_row ["v1"]
|
|
55
|
+
results = ex.execute
|
|
56
|
+
|
|
57
|
+
assert_results_equals results, 0, 0, 2
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_no_fixture
|
|
61
|
+
ex = SetupExample.new "NotExistingFixture"
|
|
62
|
+
ex.add_header "h1"
|
|
63
|
+
ex.add_row ["v1"]
|
|
64
|
+
results = ex.execute
|
|
65
|
+
|
|
66
|
+
assert_results_equals results, 0, 0, 1
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_example_execution_natural_language_header
|
|
70
|
+
ex = SetupExample.new "SetupCreateGlobalTableNaturalColumnName",
|
|
71
|
+
NameResolver
|
|
72
|
+
ex.add_header "header 1"
|
|
73
|
+
ex.add_header "header 2"
|
|
74
|
+
ex.add_header "header 3"
|
|
75
|
+
ex.add_row ["value 31", "value 32", "value 33" ]
|
|
76
|
+
results = ex.execute
|
|
77
|
+
|
|
78
|
+
expected = ["value 31", "value 32", "value 33" ]
|
|
79
|
+
|
|
80
|
+
assert_equal expected, $global_one_value_tab
|
|
81
|
+
assert_results_equals results, 0, 0, 0
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_example_execution_error_while_setting_value
|
|
85
|
+
ex = SetupExample.new "SetupRaiseErrorInSetter"
|
|
86
|
+
ex.add_header "h1"
|
|
87
|
+
ex.add_header "h2"
|
|
88
|
+
ex.add_header "h3"
|
|
89
|
+
ex.add_row ["value 11", "value 12", "value 13" ]
|
|
90
|
+
ex.add_row [RuntimeError.new, "value 22", "value 23" ]
|
|
91
|
+
ex.add_row ["value 31", "value 32", "value 33" ]
|
|
92
|
+
results = ex.execute
|
|
93
|
+
|
|
94
|
+
expected = ["value 11", "value 12", "value 13",
|
|
95
|
+
"value 31", "value 32", "value 33" ]
|
|
96
|
+
|
|
97
|
+
assert_results_equals results, 0, 1, 1
|
|
98
|
+
result = results.at 3, 3
|
|
99
|
+
|
|
100
|
+
assert_not_nil result
|
|
101
|
+
assert result.failure?
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_exception_should_be_raised_when_header_accessor_missing_in_fixture
|
|
105
|
+
ex = SetupExample.new "SetupCreateGlobalTableOneValue"
|
|
106
|
+
ex.add_header "non existing header"
|
|
107
|
+
ex.add_row ["value 11"]
|
|
108
|
+
results = ex.execute
|
|
109
|
+
|
|
110
|
+
assert_results_equals results, 0, 1, 1
|
|
111
|
+
|
|
112
|
+
result = results.at 1, 0
|
|
113
|
+
assert result.error?
|
|
114
|
+
assert result.exception.is_a?(GreenPepperMissingHeaderError)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def test_setup_gives_relevent_error_if_fixture_has_no_enter_row_method
|
|
118
|
+
ex = SetupExample.new "SetupWithoutEnterRow"
|
|
119
|
+
ex.add_header "h1"
|
|
120
|
+
results = ex.execute
|
|
121
|
+
|
|
122
|
+
assert results.at(0,1).exception.is_a?(GreenPepperMissingMethodError)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_empty_header_does_not_raise_error
|
|
126
|
+
ex = SetupExample.new "SetupCreateGlobalTableOneValue"
|
|
127
|
+
ex.add_header ''
|
|
128
|
+
ex.add_row ['']
|
|
129
|
+
results = ex.execute
|
|
130
|
+
assert_equal NoExampleResult, results.at(1,0).class
|
|
131
|
+
assert_equal WriteFailExampleResult, results.at(2,1).class
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
private
|
|
135
|
+
def assert_results_equals(results, success, failures, errors)
|
|
136
|
+
assert_equal success, results.successes
|
|
137
|
+
assert_equal failures, results.failures
|
|
138
|
+
assert_equal errors, results.errors
|
|
139
|
+
end
|
|
140
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
|
3
|
+
date: September 27, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
require 'greenpepper/example/silentexample'
|
|
8
|
+
|
|
9
|
+
include GreenPepper
|
|
10
|
+
|
|
11
|
+
class SilentExampleTest < Test::Unit::TestCase
|
|
12
|
+
def test_silent_example_returns_ignode_result
|
|
13
|
+
ex = SilentExample.new
|
|
14
|
+
results = ex.execute
|
|
15
|
+
assert results.at(0, 0).ignored?
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
|
3
|
+
date: September 26, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
require 'greenpepper/example/unknownexample'
|
|
8
|
+
|
|
9
|
+
include GreenPepper
|
|
10
|
+
|
|
11
|
+
class UnknownExampleTest < Test::Unit::TestCase
|
|
12
|
+
def test_unknown_example_returns_failure_in_results
|
|
13
|
+
ex = UnknownExample.new
|
|
14
|
+
results = ex.execute
|
|
15
|
+
assert results.at(0, 0).error?
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
Author: Simon Mathieu (simon.math@gmail.com)
|
|
3
|
+
Date: March 30, 2009
|
|
4
|
+
=end
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
|
|
8
|
+
require 'greenpepper/factory/collectionexamplefactory'
|
|
9
|
+
|
|
10
|
+
include GreenPepper
|
|
11
|
+
|
|
12
|
+
class CollectionExampleFactoryTest < Test::Unit::TestCase
|
|
13
|
+
def setup
|
|
14
|
+
@table = Table.new
|
|
15
|
+
@table.push_row ['List Of', 'Provinces Of Canada']
|
|
16
|
+
@table.push_row ['name', 'code']
|
|
17
|
+
@table.push_row ['British Columbia', 'BC']
|
|
18
|
+
@table.push_row ['Ontario', 'ON']
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_construct_collection_list
|
|
22
|
+
factory_builder_and_tester(ListOfExampleFactory, @table, ListOfExample)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_construct_collection_setof
|
|
26
|
+
factory_builder_and_tester(SetOfExampleFactory, @table, SetOfExample)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_construct_collection_subsetof
|
|
30
|
+
factory_builder_and_tester(SubsetOfExampleFactory, @table, SubsetOfExample)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def disabled_test_construct_collection_supersetof
|
|
34
|
+
factory_builder_and_tester(SupersetOfExampleFactory, @table, SupersetOfExample)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
def assert_example_complete(ex)
|
|
39
|
+
assert_equal ['name', 'code'], ex.headers_array
|
|
40
|
+
assert_equal 'Provinces Of Canada', ex.fixture_name
|
|
41
|
+
assert_equal ['British Columbia', 'BC'], ex.data[0]
|
|
42
|
+
assert_equal ['Ontario', 'ON'], ex.data[1]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def factory_builder_and_tester factory_type, table, set_type
|
|
46
|
+
factory = factory_type.new
|
|
47
|
+
ex = factory.create_example table
|
|
48
|
+
assert set_type, ex.class
|
|
49
|
+
assert_example_complete ex
|
|
50
|
+
end
|
|
51
|
+
end
|