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,484 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
author: Pascal Ouellet (pas.ouellet@gmail.com)
|
|
3
|
+
date : March 30, 09
|
|
4
|
+
=end
|
|
5
|
+
require 'test/helper/assertion'
|
|
6
|
+
require 'test/helper/assert'
|
|
7
|
+
require 'greenpepper/example/collectionexample'
|
|
8
|
+
require 'test/fixtures/collectionfixture'
|
|
9
|
+
|
|
10
|
+
include GreenPepper
|
|
11
|
+
|
|
12
|
+
class CollectionExampleTest < Test::Unit::TestCase
|
|
13
|
+
|
|
14
|
+
def test_collection_contains_header_and_data_by_row_and_column
|
|
15
|
+
example = CollectionExample.new "CollectionFixture"
|
|
16
|
+
example.add_headers ['first_name', 'last_name']
|
|
17
|
+
example.add_row ['Pascal', 'Ouellet']
|
|
18
|
+
example.add_row ['Steven', 'Denis']
|
|
19
|
+
|
|
20
|
+
assert_equal 'Pascal', example.data[0][0]
|
|
21
|
+
assert_equal 'Denis', example.data[1][1]
|
|
22
|
+
assert_equal 'first_name', example.headers_array[0]
|
|
23
|
+
assert_equal 'last_name', example.headers_array[1]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_collection_has_a_fixture
|
|
27
|
+
example = CollectionExample.new "CollectionFixture"
|
|
28
|
+
assert_equal example.fixture_name, "CollectionFixture"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_collection_with_wrong_fixture
|
|
32
|
+
example = CollectionExample.new "Wrong Name"
|
|
33
|
+
results = example.execute
|
|
34
|
+
assert_equal 1, results.errors
|
|
35
|
+
assert_results_fixture_not_found(results)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_collection_with_fixture_with_no_query_should_return_error
|
|
39
|
+
example = CollectionExample.new "CollectionFixtureWithoutQuery"
|
|
40
|
+
results = example.execute
|
|
41
|
+
assert_equal 1, results.errors
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_collection_with_fixture_with_error_in_query
|
|
45
|
+
example = CollectionExample.new "CollectionFixtureWithQueryError"
|
|
46
|
+
results = example.execute
|
|
47
|
+
assert_equal 1, results.errors
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_list_of_with_fixture_with_error_while_getting_object_of_collection
|
|
51
|
+
example = ListOfExample.new "CollectionFixtureWithExceptionInElement"
|
|
52
|
+
example.add_headers ['first_name', 'last_name']
|
|
53
|
+
example.add_row ['Pascal','Ouellet']
|
|
54
|
+
results = example.execute
|
|
55
|
+
|
|
56
|
+
assert_check_results results, 2, 0, :error
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_list_of_should_compare_multiple_lines
|
|
60
|
+
example = ListOfExample.new "CollectionFixture"
|
|
61
|
+
example.add_header 'first_name'
|
|
62
|
+
example.add_row ['Pascal']
|
|
63
|
+
example.add_row ['Steven']
|
|
64
|
+
results = example.execute
|
|
65
|
+
assert_results_success results
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_list_of_return_failures_if_in_disorder
|
|
69
|
+
example = ListOfExample.new "CollectionFixture"
|
|
70
|
+
example.add_header 'first_name'
|
|
71
|
+
example.add_row ['Steven']
|
|
72
|
+
example.add_row ['Pascal']
|
|
73
|
+
results = example.execute
|
|
74
|
+
assert_equal 2, results.failures
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_list_of_supports_multiple_column
|
|
78
|
+
example = ListOfExample.new "CollectionFixture"
|
|
79
|
+
example.add_headers ['first_name', 'id']
|
|
80
|
+
example.add_row ['Pascal', 1]
|
|
81
|
+
example.add_row ['Steven', 2]
|
|
82
|
+
results = example.execute
|
|
83
|
+
assert_results_success results
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_list_of_detects_missing_elements
|
|
87
|
+
example = ListOfExample.new "CollectionFixture"
|
|
88
|
+
example.add_headers ['first_name', 'id']
|
|
89
|
+
example.add_row ['Pascal', 1]
|
|
90
|
+
example.add_row ['Steven', 2]
|
|
91
|
+
example.add_row ['Martin', 3]
|
|
92
|
+
results = example.execute
|
|
93
|
+
|
|
94
|
+
assert results.at(4, 0).is_a?(WriteMissingExampleResult)
|
|
95
|
+
assert results.at(4, 1).is_a?(WriteMissingExampleResult)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_list_of_detects_surplus_elements
|
|
99
|
+
example = ListOfExample.new "CollectionFixture"
|
|
100
|
+
example.add_headers ['first_name','id']
|
|
101
|
+
results = example.execute
|
|
102
|
+
|
|
103
|
+
assert results.at(2, 0).is_a?(WriteSurplusExampleResult)
|
|
104
|
+
assert results.at(2, 1).is_a?(WriteSurplusExampleResult)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def test_list_of_example_stat_success_contain_expected_value
|
|
108
|
+
example = ListOfExample.new "CollectionFixture"
|
|
109
|
+
example.add_headers ['first_name', 'id']
|
|
110
|
+
example.add_row ['Pascal', 1]
|
|
111
|
+
example.add_row ['Steven', 2]
|
|
112
|
+
results = example.execute
|
|
113
|
+
assert_results_success results
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_list_of_example_stat_failure_contains_received_value
|
|
117
|
+
example = ListOfExample.new "CollectionFixture"
|
|
118
|
+
example.add_headers ['first_name', 'id']
|
|
119
|
+
example.add_row ['Pascdl', 2]
|
|
120
|
+
example.add_row ['Steven', 2]
|
|
121
|
+
results = example.execute
|
|
122
|
+
|
|
123
|
+
assert_equal "Pascal", results.at(2, 0).received
|
|
124
|
+
assert_equal "Pascdl", results.at(2, 0).expected
|
|
125
|
+
assert_equal 1, results.at(2, 1).received
|
|
126
|
+
assert_equal 2, results.at(2, 1).expected
|
|
127
|
+
assert_equal 1, results.failures
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def test_set_of_with_fixture_with_error_while_getting_object_of_collection
|
|
131
|
+
example = SetOfExample.new "CollectionFixtureWithExceptionInElement"
|
|
132
|
+
example.add_headers ['first_name', 'last_name']
|
|
133
|
+
example.add_row ['Pascal','Ouellet']
|
|
134
|
+
results = example.execute
|
|
135
|
+
|
|
136
|
+
assert results.at(2, 0).is_a?(WriteMissingExampleResult)
|
|
137
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
138
|
+
assert results.at(3, 0).is_a?(WriteExceptionExampleResult)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_set_of_should_compare_multiple_lines_in_disorder
|
|
142
|
+
example = SetOfExample.new "CollectionFixture"
|
|
143
|
+
example.add_header 'first_name'
|
|
144
|
+
example.add_row ['Steven']
|
|
145
|
+
example.add_row ['Pascal']
|
|
146
|
+
results = example.execute
|
|
147
|
+
assert_results_success results
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def test_set_of_supports_multiple_column
|
|
151
|
+
example = SetOfExample.new "CollectionFixture"
|
|
152
|
+
example.add_headers ['first_name', 'id']
|
|
153
|
+
example.add_row ['Steven', 2]
|
|
154
|
+
example.add_row ['Pascal', 1]
|
|
155
|
+
results = example.execute
|
|
156
|
+
assert_results_success results
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def test_set_of_detects_missing_elements
|
|
160
|
+
example = SetOfExample.new "CollectionFixture"
|
|
161
|
+
example.add_headers ['first_name', 'id']
|
|
162
|
+
example.add_row ['Steven', 2]
|
|
163
|
+
example.add_row ['Martin', 3]
|
|
164
|
+
example.add_row ['Pascal', 1]
|
|
165
|
+
results = example.execute
|
|
166
|
+
|
|
167
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
168
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
169
|
+
assert_equal 8, results.size
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def test_set_of_detects_surplus_elements
|
|
173
|
+
example = SetOfExample.new "CollectionFixture"
|
|
174
|
+
example.add_headers ['first_name','id']
|
|
175
|
+
example.add_row ['Steven', 2]
|
|
176
|
+
example.add_row ['Martin', 3]
|
|
177
|
+
results = example.execute
|
|
178
|
+
|
|
179
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
180
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
181
|
+
assert results.at(4, 0).is_a?(WriteSurplusExampleResult)
|
|
182
|
+
assert results.at(4, 1).is_a?(WriteSurplusExampleResult)
|
|
183
|
+
|
|
184
|
+
assert_equal 'Pascal', results.at(4, 0).value
|
|
185
|
+
assert_equal 1, results.at(4, 1).value
|
|
186
|
+
assert_equal 8, results.size
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def test_set_of_example_stat_success_contain_expected_value
|
|
190
|
+
example = SetOfExample.new "CollectionFixture"
|
|
191
|
+
example.add_headers ['first_name', 'id']
|
|
192
|
+
example.add_row ['Pascal', 1]
|
|
193
|
+
example.add_row ['Steven', 2]
|
|
194
|
+
results = example.execute
|
|
195
|
+
|
|
196
|
+
assert_equal 2, results.successes
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def test_set_of_detects_mixed_line_as_missing
|
|
200
|
+
example = SetOfExample.new "CollectionFixture"
|
|
201
|
+
example.add_headers ['first_name', 'id']
|
|
202
|
+
example.add_row ['Pascal', 2]
|
|
203
|
+
example.add_row ['Steven', 1]
|
|
204
|
+
results = example.execute
|
|
205
|
+
|
|
206
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
207
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
208
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
209
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
210
|
+
assert results.at(4, 1).is_a?(WriteSurplusExampleResult)
|
|
211
|
+
assert results.at(4, 1).is_a?(WriteSurplusExampleResult)
|
|
212
|
+
assert results.at(5, 0).is_a?(WriteSurplusExampleResult)
|
|
213
|
+
assert results.at(5, 1).is_a?(WriteSurplusExampleResult)
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def test_set_of_duplicates_in_seed
|
|
217
|
+
example = SetOfExample.new "CollectionOneColFixture"
|
|
218
|
+
example.add_headers ['column']
|
|
219
|
+
example.add_row ['a']
|
|
220
|
+
example.add_row ['a']
|
|
221
|
+
example.add_row ['b']
|
|
222
|
+
CollectionOneColFixture.set_values ['a', 'b', 'a']
|
|
223
|
+
results = example.execute
|
|
224
|
+
assert_results_success results
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def test_set_of_matching_row
|
|
228
|
+
example = SetOfExample.new "CollectionTwoColFixture"
|
|
229
|
+
example.add_headers ['column1', 'column2']
|
|
230
|
+
example.add_row ['Christian', 'Lapointe']
|
|
231
|
+
example.add_row ['Fabrice', 'Rochambeau']
|
|
232
|
+
example.add_row ['Paul', 'Young']
|
|
233
|
+
CollectionTwoColFixture.set_values [['Fabrice', 'Rochambeau'],
|
|
234
|
+
['Christian', 'Audet'],
|
|
235
|
+
['Paul', 'Young']]
|
|
236
|
+
results = example.execute
|
|
237
|
+
|
|
238
|
+
assert results.at(2, 0).is_a?(WriteMissingExampleResult)
|
|
239
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
240
|
+
assert results.at(3, 0).is_a?(SuccessExampleResult)
|
|
241
|
+
assert results.at(3, 1).is_a?(SuccessExampleResult)
|
|
242
|
+
assert results.at(4, 0).is_a?(SuccessExampleResult)
|
|
243
|
+
assert results.at(4, 1).is_a?(SuccessExampleResult)
|
|
244
|
+
assert results.at(5, 0).is_a?(WriteSurplusExampleResult)
|
|
245
|
+
assert results.at(5, 1).is_a?(WriteSurplusExampleResult)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def test_subset_of_supports_multiple_lines_in_disorder_with_multiple_columns
|
|
249
|
+
example = SubsetOfExample.new "CollectionFixture"
|
|
250
|
+
example.add_headers ['first_name', 'id']
|
|
251
|
+
example.add_row ['Steven', 2]
|
|
252
|
+
example.add_row ['Pascal', 1]
|
|
253
|
+
results = example.execute
|
|
254
|
+
assert_results_success results
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def test_subset_of_detects_missing_elements
|
|
258
|
+
example = SubsetOfExample.new "CollectionFixture"
|
|
259
|
+
example.add_headers ['first_name', 'id']
|
|
260
|
+
example.add_row ['Steven', 2]
|
|
261
|
+
example.add_row ['Martin', 3]
|
|
262
|
+
example.add_row ['Pascal', 1]
|
|
263
|
+
results = example.execute
|
|
264
|
+
|
|
265
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
266
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
267
|
+
|
|
268
|
+
assert_equal 8, results.size
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def test_subset_do_not_care_about_surplus_elements
|
|
272
|
+
example = SubsetOfExample.new "CollectionFixture"
|
|
273
|
+
example.add_headers ['first_name','id']
|
|
274
|
+
example.add_row ['Steven', 2]
|
|
275
|
+
example.add_row ['Martin', 3]
|
|
276
|
+
results = example.execute
|
|
277
|
+
|
|
278
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
279
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
280
|
+
|
|
281
|
+
assert_equal 6, results.size
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
def test_subset_of_detects_mixed_line_as_missing
|
|
285
|
+
example = SubsetOfExample.new "CollectionFixture"
|
|
286
|
+
example.add_headers ['first_name', 'id']
|
|
287
|
+
example.add_row ['Pascal', 2]
|
|
288
|
+
example.add_row ['Steven', 1]
|
|
289
|
+
results = example.execute
|
|
290
|
+
|
|
291
|
+
assert results.at(2, 0).is_a?(WriteMissingExampleResult)
|
|
292
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
293
|
+
assert results.at(3, 0).is_a?(WriteMissingExampleResult)
|
|
294
|
+
assert results.at(3, 1).is_a?(WriteMissingExampleResult)
|
|
295
|
+
assert_equal 6, results.size
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
def test_subset_of_with_fixture_with_error_while_getting_object_of_collection
|
|
299
|
+
example = SubsetOfExample.new "CollectionFixtureWithExceptionInElement"
|
|
300
|
+
example.add_headers ['first_name','last_name']
|
|
301
|
+
example.add_row ['Steven','Denis']
|
|
302
|
+
results = example.execute
|
|
303
|
+
|
|
304
|
+
assert results.at(2, 0).is_a?(WriteMissingExampleResult)
|
|
305
|
+
assert results.at(2, 1).is_a?(WriteMissingExampleResult)
|
|
306
|
+
assert results.at(3, 0).is_a?(WriteExceptionExampleResult)
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
def test_superset_of_supports_multiple_lines_in_disorder_with_multiple_columns
|
|
310
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
311
|
+
example.add_headers ['first_name', 'id']
|
|
312
|
+
example.add_row ['Steven', 2]
|
|
313
|
+
example.add_row ['Pascal', 1]
|
|
314
|
+
results = example.execute
|
|
315
|
+
assert_results_success results
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
def test_superset_of_ignores_missing_elements
|
|
319
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
320
|
+
example.add_headers ['first_name', 'id']
|
|
321
|
+
example.add_row ['Steven', 2]
|
|
322
|
+
example.add_row ['Martin', 3]
|
|
323
|
+
example.add_row ['Pascal', 1]
|
|
324
|
+
results = example.execute
|
|
325
|
+
|
|
326
|
+
assert results.at(3, 0).is_a?(NoExampleResult)
|
|
327
|
+
assert results.at(3, 1).is_a?(NoExampleResult)
|
|
328
|
+
assert_equal 8, results.size
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
def test_superset_of_detects_surplus_elements
|
|
332
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
333
|
+
example.add_headers ['first_name','id']
|
|
334
|
+
example.add_row ['Steven', 2]
|
|
335
|
+
example.add_row ['Martin', 3]
|
|
336
|
+
results = example.execute
|
|
337
|
+
|
|
338
|
+
assert results.at(3, 0).is_a?(NoExampleResult)
|
|
339
|
+
assert results.at(3, 1).is_a?(NoExampleResult)
|
|
340
|
+
assert results.at(4, 0).is_a?(WriteSurplusExampleResult)
|
|
341
|
+
assert results.at(4, 1).is_a?(WriteSurplusExampleResult)
|
|
342
|
+
assert_equal 'Pascal', results.at(4, 0).value
|
|
343
|
+
assert_equal 1, results.at(4, 1).value
|
|
344
|
+
assert_equal 8, results.size
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
def test_superset_of_detects_mixed_line_as_ignored
|
|
348
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
349
|
+
example.add_headers ['first_name', 'id']
|
|
350
|
+
example.add_row ['Pascal', 2]
|
|
351
|
+
example.add_row ['Steven', 1]
|
|
352
|
+
results = example.execute
|
|
353
|
+
|
|
354
|
+
assert results.at(2, 0).is_a?(NoExampleResult)
|
|
355
|
+
assert results.at(2, 1).is_a?(NoExampleResult)
|
|
356
|
+
assert results.at(3, 0).is_a?(NoExampleResult)
|
|
357
|
+
assert results.at(3, 1).is_a?(NoExampleResult)
|
|
358
|
+
assert_equal 10, results.size
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
def test_superset_of_with_fixture_with_error_while_getting_object_of_collection
|
|
362
|
+
example = SupersetOfExample.new "CollectionFixtureWithExceptionInElement"
|
|
363
|
+
example.add_headers ['first_name','last_name']
|
|
364
|
+
example.add_row ['Steven','Denis']
|
|
365
|
+
results = example.execute
|
|
366
|
+
|
|
367
|
+
assert results.at(2, 0).is_a?(NoExampleResult)
|
|
368
|
+
assert results.at(2, 1).is_a?(NoExampleResult)
|
|
369
|
+
assert results.at(3, 0).is_a?(WriteExceptionExampleResult)
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
def test_list_of_statistic_correctly_updated
|
|
373
|
+
example = ListOfExample.new "ListOfStatUpdateCorrectlyFixture"
|
|
374
|
+
example.add_headers ['value', 'other']
|
|
375
|
+
example.add_row ['a','1']
|
|
376
|
+
example.add_row ['b','2']
|
|
377
|
+
example.add_row ['d','4']
|
|
378
|
+
results = example.execute
|
|
379
|
+
|
|
380
|
+
assert_equal 2, results.successes
|
|
381
|
+
assert_equal 1, results.failures
|
|
382
|
+
assert_equal 0, results.ignored
|
|
383
|
+
assert_equal 0, results.errors
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
def test_list_of_with_collection_that_throws
|
|
387
|
+
ex = ListOfExample.new "ListOfCollectionExceptionThrowsFixture"
|
|
388
|
+
ex.add_headers ['a']
|
|
389
|
+
ex.add_row ['1']
|
|
390
|
+
results = ex.execute
|
|
391
|
+
assert_equal 1, results.errors
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
def test_list_with_an_empty_column_header
|
|
395
|
+
example = ListOfExample.new "CollectionFixture"
|
|
396
|
+
example.add_header 'first_name'
|
|
397
|
+
example.add_header ''
|
|
398
|
+
example.add_row ['Pascal', 'Someone']
|
|
399
|
+
example.add_row ['Steven', 'Another person']
|
|
400
|
+
results = example.execute
|
|
401
|
+
|
|
402
|
+
assert_equal 1, results.errors
|
|
403
|
+
assert_equal 2, results.successes
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
def test_list_with_wrong_column_name
|
|
407
|
+
example = ListOfExample.new "CollectionFixture"
|
|
408
|
+
example.add_header 'first_name'
|
|
409
|
+
example.add_header 'wrong_name'
|
|
410
|
+
example.add_row ['Pascal', 'Someone']
|
|
411
|
+
example.add_row ['Steven', 'Another person']
|
|
412
|
+
results = example.execute
|
|
413
|
+
|
|
414
|
+
assert_equal 1, results.errors
|
|
415
|
+
assert_equal 2, results.successes
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
def test_Set_with_an_empty_column_header
|
|
419
|
+
example = SetOfExample.new "CollectionFixture"
|
|
420
|
+
example.add_header 'first_name'
|
|
421
|
+
example.add_header ''
|
|
422
|
+
example.add_row ['Pascal', 'Someone']
|
|
423
|
+
example.add_row ['Steven', 'Another person']
|
|
424
|
+
results = example.execute
|
|
425
|
+
|
|
426
|
+
assert_equal 1, results.errors
|
|
427
|
+
assert_equal 2, results.successes
|
|
428
|
+
end
|
|
429
|
+
|
|
430
|
+
def test_Set_with_an_empty_column_header
|
|
431
|
+
example = SetOfExample.new "CollectionFixture"
|
|
432
|
+
example.add_header 'first_name'
|
|
433
|
+
example.add_header 'wrong_name'
|
|
434
|
+
example.add_row ['Pascal', 'Someone']
|
|
435
|
+
example.add_row ['Steven', 'Another person']
|
|
436
|
+
results = example.execute
|
|
437
|
+
|
|
438
|
+
assert_equal 1, results.errors
|
|
439
|
+
assert_equal 2, results.successes
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
def test_SuperSet_with_an_empty_column_header
|
|
443
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
444
|
+
example.add_header 'first_name'
|
|
445
|
+
example.add_header ''
|
|
446
|
+
example.add_row ['Pascal', 'Someone']
|
|
447
|
+
example.add_row ['Steven', 'Another person']
|
|
448
|
+
results = example.execute
|
|
449
|
+
|
|
450
|
+
assert_equal 1, results.errors
|
|
451
|
+
assert_equal 2, results.successes
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
def test_SuperSet_with_an_empty_column_header
|
|
455
|
+
example = SupersetOfExample.new "CollectionFixture"
|
|
456
|
+
example.add_header 'first_name'
|
|
457
|
+
example.add_header 'wrong_name'
|
|
458
|
+
example.add_row ['Pascal', 'Someone']
|
|
459
|
+
example.add_row ['Steven', 'Another person']
|
|
460
|
+
results = example.execute
|
|
461
|
+
|
|
462
|
+
assert_equal 1, results.errors
|
|
463
|
+
assert_equal 2, results.successes
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
def test_SubSet_with_an_empty_column_header
|
|
467
|
+
example = SubsetOfExample.new "CollectionFixture"
|
|
468
|
+
example.add_header 'first_name'
|
|
469
|
+
example.add_header ''
|
|
470
|
+
example.add_row ['Pascal', 'Someone']
|
|
471
|
+
example.add_row ['Steven', 'Another person']
|
|
472
|
+
results = example.execute
|
|
473
|
+
|
|
474
|
+
results.each{|res| puts res.class
|
|
475
|
+
if res.error?
|
|
476
|
+
puts res.exception.message
|
|
477
|
+
puts res.exception.backtrace
|
|
478
|
+
end
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
assert_equal 1, results.errors
|
|
482
|
+
assert_equal 2, results.successes
|
|
483
|
+
end
|
|
484
|
+
end
|