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.
Files changed (120) hide show
  1. data/bin/greenpepperize +71 -0
  2. data/bin/greenpepperrails +33 -0
  3. data/bin/greenpepperruby +15 -0
  4. data/data/greenpepper.rake +37 -0
  5. data/data/helper.rb +32 -0
  6. data/data/tags +6 -0
  7. data/lib/greenpepper/argumentparser.rb +161 -0
  8. data/lib/greenpepper/common/loadpath.rb +7 -0
  9. data/lib/greenpepper/context/htmlcontext.rb +26 -0
  10. data/lib/greenpepper/converter.rb +347 -0
  11. data/lib/greenpepper/core.rb +152 -0
  12. data/lib/greenpepper/example/collectionexample.rb +305 -0
  13. data/lib/greenpepper/example/dowithexample.rb +192 -0
  14. data/lib/greenpepper/example/exampleheader.rb +41 -0
  15. data/lib/greenpepper/example/examplewithfixture.rb +73 -0
  16. data/lib/greenpepper/example/executionresults.rb +160 -0
  17. data/lib/greenpepper/example/fieldaccessor.rb +36 -0
  18. data/lib/greenpepper/example/freetextexample.rb +51 -0
  19. data/lib/greenpepper/example/importexample.rb +39 -0
  20. data/lib/greenpepper/example/nameresolver.rb +69 -0
  21. data/lib/greenpepper/example/ruleforexample.rb +117 -0
  22. data/lib/greenpepper/example/setupexample.rb +79 -0
  23. data/lib/greenpepper/example/silentexample.rb +14 -0
  24. data/lib/greenpepper/example/unknownexample.rb +17 -0
  25. data/lib/greenpepper/exception/greenpepperexception.rb +57 -0
  26. data/lib/greenpepper/executionunit.rb +39 -0
  27. data/lib/greenpepper/factory/collectionexamplefactory.rb +59 -0
  28. data/lib/greenpepper/factory/dowithexamplefactory.rb +71 -0
  29. data/lib/greenpepper/factory/examplefactory.rb +14 -0
  30. data/lib/greenpepper/factory/freetextexamplefactory.rb +29 -0
  31. data/lib/greenpepper/factory/htmlexamplefactory.rb +49 -0
  32. data/lib/greenpepper/factory/importexamplefactory.rb +27 -0
  33. data/lib/greenpepper/factory/ruleforexamplefactory.rb +46 -0
  34. data/lib/greenpepper/factory/setupexamplefactory.rb +31 -0
  35. data/lib/greenpepper/factory/silentexamplefactory.rb +21 -0
  36. data/lib/greenpepper/factory/unknownexamplefactory.rb +16 -0
  37. data/lib/greenpepper/freetext.rb +164 -0
  38. data/lib/greenpepper/grammar/array.treetop +51 -0
  39. data/lib/greenpepper/grammar/arrayparser.rb +14 -0
  40. data/lib/greenpepper/greenpepperconfig.rb +19 -0
  41. data/lib/greenpepper/greenpeppertask.rb +60 -0
  42. data/lib/greenpepper/logger.rb +45 -0
  43. data/lib/greenpepper/parser/freetextparser.rb +96 -0
  44. data/lib/greenpepper/parser/htmlparser.rb +70 -0
  45. data/lib/greenpepper/parser/scenario.rb +25 -0
  46. data/lib/greenpepper/parser/table.rb +37 -0
  47. data/lib/greenpepper/parser/wikiparser.rb +26 -0
  48. data/lib/greenpepper/pass/freetextpass.rb +24 -0
  49. data/lib/greenpepper/pass/greenpepperpass.rb +92 -0
  50. data/lib/greenpepper/pass/tablepass.rb +38 -0
  51. data/lib/greenpepper/railsargumentparser.rb +46 -0
  52. data/lib/greenpepper/redpeppertask.rb +89 -0
  53. data/lib/greenpepper/repository/atlassianrepository.rb +100 -0
  54. data/lib/greenpepper/writer/consolewriter.rb +21 -0
  55. data/lib/greenpepper/writer/freetextresult.rb +233 -0
  56. data/lib/greenpepper/writer/freetextwriter.rb +44 -0
  57. data/lib/greenpepper/writer/html.rb +14 -0
  58. data/lib/greenpepper/writer/htmldocwriter.rb +82 -0
  59. data/lib/greenpepper/writer/htmlresult.rb +192 -0
  60. data/lib/greenpepper/writer/htmlwriter.rb +112 -0
  61. data/lib/greenpepper/writer/output.rb +26 -0
  62. data/lib/greenpepper/writer/result.rb +35 -0
  63. data/lib/greenpepper/writer/xmlwriter.rb +32 -0
  64. data/test/coreseedstest.rb +39 -0
  65. data/test/greenpepper/argumentparsertest.rb +162 -0
  66. data/test/greenpepper/common/loadpathtest.rb +24 -0
  67. data/test/greenpepper/common/stattest.rb +186 -0
  68. data/test/greenpepper/convertertest.rb +371 -0
  69. data/test/greenpepper/coretest.rb +159 -0
  70. data/test/greenpepper/example/collectionexampletest.rb +484 -0
  71. data/test/greenpepper/example/dowithexampletest.rb +148 -0
  72. data/test/greenpepper/example/exampletest.rb +28 -0
  73. data/test/greenpepper/example/freetextexampletest.rb +151 -0
  74. data/test/greenpepper/example/importexampletest.rb +79 -0
  75. data/test/greenpepper/example/nameresolvertest.rb +56 -0
  76. data/test/greenpepper/example/ruleforexampletest.rb +225 -0
  77. data/test/greenpepper/example/setupexampletest.rb +140 -0
  78. data/test/greenpepper/example/silentexampletest.rb +17 -0
  79. data/test/greenpepper/example/unknownexampletest.rb +17 -0
  80. data/test/greenpepper/factory/collectionexamplefactorytest.rb +51 -0
  81. data/test/greenpepper/factory/dowithexamplefactorytest.rb +48 -0
  82. data/test/greenpepper/factory/examplefactorytest.rb +88 -0
  83. data/test/greenpepper/factory/freetextexamplefactorytest.rb +54 -0
  84. data/test/greenpepper/factory/importexamplefactorytest.rb +40 -0
  85. data/test/greenpepper/factory/ruleforexamplefactorytest.rb +55 -0
  86. data/test/greenpepper/factory/setupexamplefactorytest.rb +29 -0
  87. data/test/greenpepper/factory/silentexamplefactorytest.rb +38 -0
  88. data/test/greenpepper/freetexttest.rb +222 -0
  89. data/test/greenpepper/grammar/arrayparsertest.rb +45 -0
  90. data/test/greenpepper/loggertest.rb +26 -0
  91. data/test/greenpepper/parser/freetextparsertest.rb +124 -0
  92. data/test/greenpepper/parser/htmlparsertest.rb +77 -0
  93. data/test/greenpepper/parser/wikiparsertest.rb +21 -0
  94. data/test/greenpepper/pass/freetextpasstest.rb +54 -0
  95. data/test/greenpepper/pass/greenpepperpasstest.rb +47 -0
  96. data/test/greenpepper/pass/tablepasstest.rb +23 -0
  97. data/test/greenpepper/repository/atlassionrepositorytest.rb +85 -0
  98. data/test/greenpepper/writer/freetextwritertest.rb +301 -0
  99. data/test/greenpepper/writer/htmlcollectionwritertest.rb +145 -0
  100. data/test/greenpepper/writer/htmldowithwritertest.rb +87 -0
  101. data/test/greenpepper/writer/htmlruleforwritertest.rb +147 -0
  102. data/test/greenpepper/writer/htmlsetupwritertest.rb +107 -0
  103. data/test/greenpepper/writer/htmlstatresulttest.rb +118 -0
  104. data/test/greenpepper/writer/htmlwriterpositiontest.rb +53 -0
  105. data/test/greenpepper/writer/writertest.rb +33 -0
  106. data/test/greenpepper/writer/xmlwritertest.rb +34 -0
  107. data/test/integration/collectionexampleintegrationtest.rb +64 -0
  108. data/test/integration/errorhandlingintegrationtest.rb +68 -0
  109. data/test/integration/freetextexampleintegrationtest.rb +75 -0
  110. data/test/integration/greenpepperexecutableintegrationtest.rb +22 -0
  111. data/test/integration/importexampleintegrationtest.rb +41 -0
  112. data/test/integration/interpretationordertest.rb +48 -0
  113. data/test/integration/ruleforexampleintegrationtest.rb +102 -0
  114. data/test/integration/securityintegrationtest.rb +30 -0
  115. data/test/integration/setupexampleintegrationtest.rb +31 -0
  116. data/test/integration/silentexampleintegrationtest.rb +29 -0
  117. data/test/task/greenpeppertasktest.rb +96 -0
  118. data/test/task/redpeppertasktest.rb +120 -0
  119. data/vendor/accents.rb +85 -0
  120. 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