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,148 @@
1
+ =begin
2
+ author: Simon Mathieu (simon.math@gmail.com)
3
+ date: March 19, 2009
4
+ =end
5
+
6
+ require 'test/unit'
7
+ require 'greenpepper/example/dowithexample'
8
+ require 'greenpepper/example/executionresults'
9
+
10
+ require 'test/fixtures/fixture'
11
+ require 'test/helper/assert'
12
+ require 'test/fixtures/dowithfixture'
13
+
14
+ include GreenPepper
15
+
16
+ class DoWithExampleTest < Test::Unit::TestCase
17
+ def test_create_empty_dowith_example
18
+ ex = DoWithExample.new "Bank"
19
+ ex.add_function_call "open_checking_account", 1, '1234'
20
+ results = ex.execute
21
+
22
+ assert_equal 0, results.size
23
+ assert_results_fixture_found(results)
24
+ end
25
+
26
+ def test_create_empty_dowith_example_two_args
27
+ ex = DoWithExample.new "Bank"
28
+ ex.add_function_call "open_checking_account_for", 1, '123', 'abc'
29
+ results = ex.execute
30
+
31
+ assert_equal 0, results.size
32
+ assert_results_fixture_found(results)
33
+ end
34
+
35
+ def test_do_with_example_check_keyword
36
+ ex = DoWithExample.new "Bank"
37
+ ex.add_check "get_amount", 0, '100', '123'
38
+ ex.add_check "get_amount", 0, '101', '123'
39
+ results = ex.execute
40
+
41
+ assert_check_results results, 1, 0, :success
42
+ assert_check_results results, 2, 0, :failure
43
+ end
44
+
45
+ def test_do_with_example_accept_keyword
46
+ ex = DoWithExample.new "Bank"
47
+ ex.add_accept "withdraw_from_account", 0, '123', '50'
48
+ ex.add_accept "withdraw_from_account", 0, '123', '140'
49
+ results = ex.execute
50
+
51
+ assert_check_results results, 1, 0, :success
52
+ assert_check_results results, 2, 0, :failure
53
+ end
54
+
55
+ def test_do_with_example_reject_keyword
56
+ ex = DoWithExample.new "bank"
57
+ ex.add_reject "withdraw_from_account", 0, '123', '50'
58
+ ex.add_reject "withdraw_from_account", 0, '123', '140'
59
+ results = ex.execute
60
+
61
+ assert_check_results results, 1, 0, :failure
62
+ assert_check_results results, 2, 0, :success
63
+ end
64
+
65
+ def test_do_with_example_multiple_lines
66
+ ex = DoWithExample.new "Bank2"
67
+ ex.add_function_call 'open_account', 0, '123'
68
+ ex.add_check 'get_amount_for_account', 0, '0', '123'
69
+ ex.add_accept 'deposit_in_account', 0, '100', '123'
70
+ ex.add_reject 'withdraw_from_account', 0, '200', '123'
71
+ results = ex.execute
72
+ result = HtmlTableExecutionResults.get_all_results([results])
73
+
74
+ assert_equal 3, results.size
75
+
76
+ assert_check_results results, 2, 0, :success
77
+ assert_check_results results, 3, 0, :success
78
+ assert_check_results results, 4, 0, :success
79
+
80
+ assert_equal 3, result.successes
81
+ assert_equal 0, result.failures
82
+ assert_equal 0, result.errors
83
+ end
84
+
85
+ def test_fixture_with_exeption
86
+ ex = DoWithExample.new "Bank"
87
+ ex.add_function_call 'will_raise', 0, '123'
88
+ results = ex.execute
89
+
90
+ assert_check_results results, 1, 0, :error
91
+ end
92
+
93
+ def test_fixture_not_found
94
+ ex = DoWithExample.new "This Fixture Dont exist"
95
+ ex.add_reject "withdraw_from_account", 0, '123', '50'
96
+ results = ex.execute
97
+ assert_results_fixture_not_found(results)
98
+ end
99
+
100
+ def test_do_with_example_reject_keyword_with_natural_language_function_name
101
+ ex = DoWithExample.new "bank"
102
+ ex.add_reject "withdraw from account", 0, '123', '50'
103
+ ex.add_reject "withdraw from account", 0, '123', '140'
104
+ results = ex.execute
105
+ assert_check_results results, 1, 0, :failure
106
+ assert_check_results results, 2, 0, :success
107
+ end
108
+
109
+ def test_do_with_example_with_column_name_that_does_not_exist
110
+ ex = DoWithExample.new "Bank"
111
+ ex.add_function_call 'does not exist', 0, '123'
112
+ results = ex.execute
113
+ assert_check_results results, 1, 0, :error
114
+ end
115
+
116
+ def test_do_with_example_parse_in_fixture
117
+ ex = DoWithExample.new "BankFixtureConversion"
118
+ ex.add_accept 'get_account', 0, 'abc'
119
+ ex.add_accept 'get_account', 0, 'abd'
120
+ results = ex.execute
121
+ assert_check_results results, 1, 0, :success
122
+ assert_check_results results, 2, 0, :failure
123
+ end
124
+
125
+ def test_do_with_example_parse_multiple_args
126
+ ex = DoWithExample.new "BankFixtureConversion"
127
+ ex.add_function_call 'multiple_params', 0, 'a', 'b', 'c'
128
+ results = ex.execute
129
+
130
+ assert_equal 0, results.size #TODO : Shall be a test with success
131
+ end
132
+
133
+ def test_do_with_example_check_parse_expected_result
134
+ ex = DoWithExample.new "BankFixtureConversion"
135
+ ex.add_check "that_balance_is", 0, '0.0', '123'
136
+ results = ex.execute
137
+ assert_check_results results, 1, 0, :success
138
+ end
139
+
140
+ def test_missing_method_in_do_with_should_not_return_address_in_error
141
+ ex = DoWithExample.new "Object"
142
+ ex.add_function_call 'toto', 0
143
+ results = ex.execute
144
+
145
+ result = assert_check_results results, 1, 0, :error
146
+ assert_equal "Cannot find method toto on fixture Object.", result.exception.to_s
147
+ end
148
+ end
@@ -0,0 +1,28 @@
1
+ =begin
2
+ author: Simon Mathieu (simon.math@gmail.com)
3
+ date: April 18, 2009
4
+ =end
5
+
6
+ require 'test/unit'
7
+ require 'test/fixtures/fixture.rb'
8
+ require 'greenpepper/example/examplewithfixture'
9
+
10
+ include GreenPepper
11
+
12
+ class ExampleTest < Test::Unit::TestCase
13
+ class MockExampleRaisesError < ExampleWithFixture
14
+ def initialize
15
+ super "EmptyMockFixture"
16
+ end
17
+
18
+ def do_execute
19
+ raise "error"
20
+ end
21
+ end
22
+
23
+ def test_example_with_fixture_exception_handling
24
+ ex = MockExampleRaisesError.new
25
+ results = ex.execute
26
+ assert results.errors != 0
27
+ end
28
+ end
@@ -0,0 +1,151 @@
1
+ =begin
2
+ author: Simon Mathieu (simon.math@gmail.com)
3
+ date: September 13, 2009
4
+ =end
5
+
6
+ require 'test/unit'
7
+ require 'test/helper/assert.rb'
8
+ require 'greenpepper/freetext'
9
+ require 'greenpepper/example/freetextexample'
10
+
11
+ include GreenPepper
12
+
13
+ class FreeTextExampleTest < Test::Unit::TestCase
14
+ def setup
15
+ @example = FreeTextExample.new "FreeTextFixture1"
16
+ end
17
+
18
+ def test_free_text_example_successful_boolean_result
19
+ @example.add_action "success"
20
+ results = @example.execute
21
+
22
+ assert results[1].success?
23
+ end
24
+
25
+ def test_free_text_example_unsuccessful_boolean_result
26
+ @example.add_action "failure"
27
+ results = @example.execute
28
+
29
+ assert results[1].failure?
30
+ end
31
+
32
+ def test_free_text_example_unmapable_action
33
+ @example.add_action "unkown"
34
+ results = @example.execute
35
+ assert results[1].exception.is_a?(GreenPepperUnknownActionError)
36
+ end
37
+
38
+ def test_free_text_example_action_return_object_should_fail
39
+ @example.add_action "return some object"
40
+ results = @example.execute
41
+
42
+ assert results[1].failure?
43
+ end
44
+
45
+ def test_free_text_example_should_be_able_to_execute_a_list_of_actions
46
+ @example.add_action "success"
47
+ @example.add_action "failure"
48
+ results = @example.execute
49
+
50
+ assert results[1].success?
51
+ assert results[2].failure?
52
+ end
53
+
54
+ def test_free_text_example_should_execute_action_in_order
55
+ example = FreeTextExample.new "FreeTextFixtureCheckOrder"
56
+ example.add_action "action1"
57
+ example.add_action "action2"
58
+ results = example.execute
59
+
60
+ assert results[1].success?
61
+ assert results[2].success?
62
+ end
63
+
64
+ def test_free_text_fixture_not_found
65
+ example = FreeTextExample.new "Inexisting Fixture"
66
+ results = example.execute
67
+
68
+ assert results[0].error?
69
+ end
70
+
71
+ def test_free_text_should_match_regex_in_correct_fixture
72
+ example1 = FreeTextExample.new "FreeTextFixtureSame1"
73
+ example2 = FreeTextExample.new "FreeTextFixtureSame2"
74
+ example1.add_action "success once"
75
+ example2.add_action "success once"
76
+
77
+ stats1 = example1.execute
78
+ stats2 = example2.execute
79
+
80
+ assert_equal 1, stats1.successes
81
+ assert_equal 1, stats2.successes
82
+ assert_equal 0, stats1.failures
83
+ assert_equal 0, stats2.failures
84
+ assert_equal 0, stats1.errors
85
+ assert_equal 0, stats2.errors
86
+ end
87
+ end
88
+
89
+ class FreeTextFixture1
90
+ include FreeText
91
+
92
+ Check /success/ do
93
+ true
94
+ end
95
+
96
+ Check /failure/ do
97
+ false
98
+ end
99
+
100
+ Check /return some object/ do
101
+ Object.new
102
+ end
103
+ end
104
+
105
+ class FreeTextFixtureSame1
106
+ include FreeText
107
+ @@first = true
108
+
109
+ Check /^success once$/ do
110
+ ret = false
111
+ if @@first
112
+ @@first = false
113
+ ret = true
114
+ end
115
+ ret
116
+ end
117
+ end
118
+
119
+ class FreeTextFixtureSame2
120
+ include FreeText
121
+ @@first = true
122
+
123
+ Check /^success once$/ do
124
+ ret = false
125
+ if @@first
126
+ @@first = false
127
+ ret = true
128
+ end
129
+ ret
130
+ end
131
+ end
132
+
133
+ class FreeTextFixtureCheckOrder
134
+ include FreeText
135
+
136
+ def initialize
137
+ @count = 0
138
+ end
139
+
140
+ Check /action1/ do
141
+ @count += 1
142
+ raise "Bad order" unless 1 == @count
143
+ true
144
+ end
145
+
146
+ Check /action2/ do
147
+ @count += 1
148
+ raise "Bad order" unless 2 == @count
149
+ true
150
+ end
151
+ end
@@ -0,0 +1,79 @@
1
+ =begin
2
+ author: Pascal Ouellet (pas.ouellet@gmail.com)
3
+ date : March 6, 09
4
+ =end
5
+ require 'test/helper/assertion'
6
+ require 'test/helper/assert'
7
+ require 'greenpepper/parser/table'
8
+ require 'greenpepper/example/importexample'
9
+ require 'greenpepper/factory/importexamplefactory'
10
+ require 'greenpepper/core'
11
+
12
+ include GreenPepper
13
+
14
+ class ImportExampleTest < Test::Unit::TestCase
15
+
16
+ def setup
17
+ @simple_table = ['import', 'test/common/importtestfixture']
18
+ @simple_example = ImportExample.new
19
+ @simple_example.add *@simple_table[1..-1]
20
+
21
+ @complex_table = ['Import',
22
+ 'test/fixtures/importtestfixture',
23
+ 'test/fixtures/importtestfixture2']
24
+ @complex_example = ImportExample.new
25
+ @complex_example.add *@complex_table[1..-1]
26
+
27
+
28
+ @example_with_errors = ImportExample.new
29
+ @example_with_errors.add 'test/fixtures/importtestfixture',
30
+ 'somethingthatdontexist',
31
+ 'test/fixtures/importtestfixture2',
32
+ 'unknownimport'
33
+ end
34
+
35
+ def test_import_example_should_contain_imported_module
36
+ assert_equal @complex_table[1], @complex_example.imports[0]
37
+ assert_equal @complex_table[2], @complex_example.imports[1]
38
+ end
39
+
40
+ def test_import_example_should_load_modules_when_executed
41
+ assert_raise(NameError) {NonExistingFixture.new}
42
+
43
+ @complex_example.execute
44
+
45
+ assert_nothing_raised {
46
+ fixture = ImportTestFixture.new
47
+ fixture.test
48
+ fixture = ImportTestFixture2.new
49
+ fixture.test
50
+ }
51
+ end
52
+
53
+ def test_execute_should_raise_significant_exception_if_not_found
54
+ expected_message = "Failed to import test/common/someunknownimport: no such file to load -- test/common/someunknownimport"
55
+
56
+ import = ImportExample.new
57
+ import.add 'test/common/someunknownimport'
58
+ results = import.execute
59
+
60
+ assert_equal expected_message, results.at(1,0).exception.message
61
+ end
62
+
63
+ def test_results_should_not_be_collected_for_import_failures
64
+ results = @example_with_errors.execute
65
+
66
+ assert_equal 0, results.errors
67
+ assert_equal 0, results.successes
68
+ assert_equal 0, results.failures
69
+ end
70
+
71
+ def test_results_should_reflect_execution_of_import
72
+ results = @example_with_errors.execute
73
+
74
+ assert results.at(1, 0).is_a?(NoExampleResult)
75
+ assert results.at(2, 0).is_a?(ErrorExampleResult)
76
+ assert results.at(3, 0).is_a?(NoExampleResult)
77
+ assert results.at(4, 0).is_a?(ErrorExampleResult)
78
+ end
79
+ end
@@ -0,0 +1,56 @@
1
+ =begin
2
+ author: Sebastien Boisclair (SebBoisclair@gmail.com)
3
+ date: Februrary 24, 2009
4
+ =end
5
+
6
+ require 'test/unit'
7
+ require 'greenpepper/example/nameresolver'
8
+ require 'test/fixtures/fixture.rb'
9
+
10
+ include GreenPepper
11
+
12
+ class NameResolverTest < Test::Unit::TestCase
13
+ def test_fixture_name_resolver_with_space_and_downcase_only
14
+ fixture_class = NameResolver.solve_fixture_name "Rule for example equality lowercase"
15
+ assert_equal 'Ruleforexampleequalitylowercasefixture', fixture_class.name
16
+ end
17
+
18
+ def test_fixture_name_resolver_name_with_space_and_fixture_class_with_underscore
19
+ fixture_class = NameResolver.solve_fixture_name "Ruleforexample equality underscore"
20
+ assert_equal 'Ruleforexample_equality_underscore_fixture', fixture_class.name
21
+ end
22
+
23
+ def test_fixture_name_resolver_name_in_camel_case
24
+ fixture_class = NameResolver.solve_fixture_name "RuleforexampleEqualityUnderscore"
25
+ assert_equal 'Ruleforexample_equality_underscore_fixture', fixture_class.name
26
+ end
27
+
28
+ def test_fixture_name_resolver_name_with_example_and_underscore_and_fixture_not_in_the_name
29
+ fixture_class = NameResolver.solve_fixture_name "RuleFor_example_Without_the f word"
30
+ assert_equal 'RuleFor_example_without_the_f_word', fixture_class.name
31
+ end
32
+
33
+ def test_fixture_name_resolver_name_with_accents
34
+ fixture_class = NameResolver.solve_fixture_name "RuleFor éxample Without the f word"
35
+ assert_equal 'RuleFor_example_without_the_f_word', fixture_class.name
36
+ end
37
+
38
+ def test_fixture_name_resolver_name_with_illegal_caracters_removed
39
+ fixture_class = NameResolver.solve_fixture_name "RuleFor example Without the f word.,'\"&"
40
+ assert_equal 'RuleFor_example_without_the_f_word', fixture_class.name
41
+ end
42
+
43
+ def test_for_example_with_name_of_the_column_in_natural_language
44
+ assert_equal "sum_with_space", NameResolver.format_column_name( "sum With spaCe")
45
+ end
46
+
47
+ def test_exception_should_be_raised_when_accessor_missing_in_fixture
48
+ fixture_class = NameResolver.solve_fixture_name "RuleFor_example_without_accessor_to_header"
49
+ assert_raise(GreenPepperMissingMethodError) {
50
+ NameResolver.set_instance_field(fixture_class, "h1", "field value")
51
+ }
52
+ assert_raise(GreenPepperMissingMethodError) {
53
+ NameResolver.get_instance_field(fixture_class, "h1")
54
+ }
55
+ end
56
+ end