greenpepper-ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,36 @@
|
|
1
|
+
=begin
|
2
|
+
author: Murat Edouard
|
3
|
+
date: September 5, 2009
|
4
|
+
=end
|
5
|
+
|
6
|
+
module GreenPepper
|
7
|
+
|
8
|
+
require 'greenpepper/exception/greenpepperexception'
|
9
|
+
|
10
|
+
class InstanceFieldAccessor
|
11
|
+
def access_instance_field(fixture, field_name, value=nil)
|
12
|
+
method = fixture.public_methods.find{
|
13
|
+
|method| method.to_s == field_name
|
14
|
+
}
|
15
|
+
if method.nil?
|
16
|
+
raise ErrorHelper.raise_greenpepper_missing_method(
|
17
|
+
field_name, fixture)
|
18
|
+
else
|
19
|
+
call_accessor fixture.method(field_name), value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class ReaderFieldAccessor < InstanceFieldAccessor
|
25
|
+
def call_accessor(method, value)
|
26
|
+
return method.call
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class WriterFieldAccessor < InstanceFieldAccessor
|
31
|
+
def call_accessor(method, value)
|
32
|
+
method.call value
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
=begin
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
3
|
+
date: September 13, 2009
|
4
|
+
=end
|
5
|
+
|
6
|
+
module GreenPepper
|
7
|
+
|
8
|
+
require 'greenpepper/example/executionresults'
|
9
|
+
require 'greenpepper/example/nameresolver'
|
10
|
+
require 'greenpepper/example/examplewithfixture'
|
11
|
+
require 'greenpepper/writer/freetextresult'
|
12
|
+
|
13
|
+
class FreeTextExample
|
14
|
+
attr_reader :actions, :fixture_name
|
15
|
+
|
16
|
+
def initialize(fixture_name)
|
17
|
+
@fixture_name = fixture_name
|
18
|
+
@actions = []
|
19
|
+
end
|
20
|
+
|
21
|
+
def add_action(action)
|
22
|
+
@actions << action
|
23
|
+
end
|
24
|
+
|
25
|
+
def execute
|
26
|
+
results = FreeTextExecutionResults.new
|
27
|
+
fixture_class = NameResolver.solve_fixture_name(@fixture_name)
|
28
|
+
|
29
|
+
if fixture_class.nil?
|
30
|
+
results.add_result HeaderError.new(@fixture_name,
|
31
|
+
GreenPepperMissingHeaderError.new)
|
32
|
+
return results
|
33
|
+
end
|
34
|
+
|
35
|
+
results.add_result HeaderSuccess.new(@fixture_name)
|
36
|
+
|
37
|
+
fixture = fixture_class.new
|
38
|
+
|
39
|
+
@actions.each_with_index{ |action, index|
|
40
|
+
begin
|
41
|
+
keyword = fixture.greenpepper_map_action action
|
42
|
+
results.add_result keyword.get_result
|
43
|
+
rescue Exception => e
|
44
|
+
results.add_result ActionError.new(e)
|
45
|
+
end
|
46
|
+
}
|
47
|
+
|
48
|
+
results
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
=begin
|
2
|
+
authors: Pascal Ouellet (pas.ouellet@gmail.com)
|
3
|
+
date: March 6, 2009
|
4
|
+
=end
|
5
|
+
module GreenPepper
|
6
|
+
|
7
|
+
require 'greenpepper/example/executionresults'
|
8
|
+
require 'greenpepper/writer/htmlresult'
|
9
|
+
|
10
|
+
class ImportExample
|
11
|
+
attr_reader :imports
|
12
|
+
|
13
|
+
FIRST_DATA_ROW = 1
|
14
|
+
DATA_COLUMN = 0
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@imports = Array.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def add(*imports)
|
21
|
+
@imports.concat imports
|
22
|
+
end
|
23
|
+
|
24
|
+
def execute
|
25
|
+
results = HtmlTableExecutionResults.new
|
26
|
+
@imports.each_with_index do |import, index|
|
27
|
+
begin
|
28
|
+
require import
|
29
|
+
results.add index + FIRST_DATA_ROW, DATA_COLUMN, NoExampleResult.new
|
30
|
+
rescue Exception => e
|
31
|
+
e = e.exception "Failed to import #{import}: #{e.exception}"
|
32
|
+
results.add index + FIRST_DATA_ROW, DATA_COLUMN, WriteExceptionExampleResult.new(e, true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
results
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end #module GreenPepper
|
@@ -0,0 +1,69 @@
|
|
1
|
+
=begin
|
2
|
+
author: Sebastien Boisclair (SebBoisclair@gmail.com)
|
3
|
+
date: March 8, 2009
|
4
|
+
=end
|
5
|
+
|
6
|
+
require 'greenpepper/example/fieldaccessor'
|
7
|
+
require 'accents'
|
8
|
+
|
9
|
+
module GreenPepper
|
10
|
+
|
11
|
+
module NameResolver
|
12
|
+
def NameResolver.solve_fixture_name(fixture_name)
|
13
|
+
# Remove accents using third party library
|
14
|
+
# Ex. é => e
|
15
|
+
fixture_name = fixture_name.removeaccents
|
16
|
+
|
17
|
+
# Ignore illegal caracters
|
18
|
+
fixture_name = fixture_name.gsub /[^a-zA-Z0-9_\s]/, ""
|
19
|
+
regex = create_regex(fixture_name)
|
20
|
+
fixture_classes = []
|
21
|
+
|
22
|
+
Module.constants.each{|constant|
|
23
|
+
if(regex.match(constant))
|
24
|
+
fixture_classes.push(constant)
|
25
|
+
end
|
26
|
+
}
|
27
|
+
return nil if(fixture_classes.length == 0)
|
28
|
+
|
29
|
+
|
30
|
+
fixture_name_class = fixture_classes.find{|fixture_string|
|
31
|
+
/.*(f|F)ixture$/ === fixture_string
|
32
|
+
}
|
33
|
+
|
34
|
+
if fixture_name_class == nil
|
35
|
+
fixture_name_class = fixture_classes[0]
|
36
|
+
end
|
37
|
+
Object.const_get fixture_name_class
|
38
|
+
end
|
39
|
+
|
40
|
+
def NameResolver.format_column_name name
|
41
|
+
string = name.strip.downcase.split(' ').join('_')
|
42
|
+
end
|
43
|
+
|
44
|
+
def NameResolver.set_instance_field fixture, field_name, value
|
45
|
+
writer = WriterFieldAccessor.new
|
46
|
+
writer.access_instance_field fixture, field_name + "=", value
|
47
|
+
end
|
48
|
+
|
49
|
+
def NameResolver.get_instance_field fixture, field_name
|
50
|
+
reader = ReaderFieldAccessor.new
|
51
|
+
reader.access_instance_field fixture, field_name
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def NameResolver.create_regex(fixture_name)
|
57
|
+
fixture_regex = '^'
|
58
|
+
fixture_name = fixture_name.gsub( / |_/, "_?")
|
59
|
+
if lower_word = fixture_name.scan( /[^A-Z]*/)
|
60
|
+
fixture_regex += lower_word[0]
|
61
|
+
end
|
62
|
+
fixture_name.scan(/[A-Z][^A-Z]*/).each{|word|fixture_regex += "_?" + word}
|
63
|
+
|
64
|
+
fixture_regex +='_?(fixture)?\s*$'
|
65
|
+
Regexp.new fixture_regex, 'i'
|
66
|
+
end
|
67
|
+
end # Module NameResolver
|
68
|
+
|
69
|
+
end # Module GreenPepper
|
@@ -0,0 +1,117 @@
|
|
1
|
+
=begin
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
3
|
+
date: March 9, 2009
|
4
|
+
=end
|
5
|
+
module GreenPepper
|
6
|
+
|
7
|
+
require 'greenpepper/example/executionresults'
|
8
|
+
require 'greenpepper/example/nameresolver'
|
9
|
+
require 'greenpepper/example/examplewithfixture'
|
10
|
+
require 'greenpepper/example/exampleheader'
|
11
|
+
require 'greenpepper/converter'
|
12
|
+
require 'greenpepper/exception/greenpepperexception'
|
13
|
+
|
14
|
+
class RuleForExample < ExampleWithFixture
|
15
|
+
|
16
|
+
attr_reader :values
|
17
|
+
|
18
|
+
FIRST_DATA_ROW = 2
|
19
|
+
|
20
|
+
def initialize(fixture_name, name_resolver = NameResolver)
|
21
|
+
super fixture_name
|
22
|
+
@values = Array.new
|
23
|
+
@name_resolver = name_resolver
|
24
|
+
end
|
25
|
+
|
26
|
+
def add_header(name)
|
27
|
+
output_header_regex = /\s*(.*)\?\s*\Z/
|
28
|
+
if output_header_regex === name
|
29
|
+
add_output_header($1)
|
30
|
+
else
|
31
|
+
add_input_header(name)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def add_input_header(name)
|
36
|
+
header = ExampleInputHeader.new(name, @name_resolver)
|
37
|
+
@headers.push header
|
38
|
+
header
|
39
|
+
end
|
40
|
+
|
41
|
+
def add_output_header(name)
|
42
|
+
header = RuleForOutputHeader.new(name, @name_resolver)
|
43
|
+
@headers.push header
|
44
|
+
header
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_row(values_array)
|
48
|
+
@values.push values_array
|
49
|
+
end
|
50
|
+
|
51
|
+
def do_execute(results, fixture_class)
|
52
|
+
@values.each_index{ |row_index|
|
53
|
+
# We instantiate a fixture every row to reset the object
|
54
|
+
fixture = instantiate_fixture fixture_class
|
55
|
+
|
56
|
+
headers.each_index{ |column_index|
|
57
|
+
header = headers[column_index]
|
58
|
+
string_value = @values[row_index][column_index]
|
59
|
+
value = TypeConverter.instance.auto_convert_string(
|
60
|
+
fixture, header.name, string_value)
|
61
|
+
|
62
|
+
#The output header needs to keep the value of an empty string
|
63
|
+
#instead of nil because it needs to differentiate the nil value
|
64
|
+
#and an ignored cell.
|
65
|
+
if header.class == RuleForOutputHeader &&
|
66
|
+
(string_value == '')
|
67
|
+
value = ''
|
68
|
+
end
|
69
|
+
result = header.execute( value, fixture, string_value)
|
70
|
+
results.add row_index + FIRST_DATA_ROW, column_index,
|
71
|
+
result unless result == nil
|
72
|
+
}
|
73
|
+
}
|
74
|
+
results
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
class RuleForOutputHeader < ExampleBaseHeader
|
80
|
+
|
81
|
+
def execute(value, fixture, value_format)
|
82
|
+
return NoExampleResult.new if !fixture.respond_to? @formated_name
|
83
|
+
|
84
|
+
begin
|
85
|
+
result = get_result fixture
|
86
|
+
rescue Exception => e
|
87
|
+
if value.is_a? Exception
|
88
|
+
return SuccessExampleResult.new
|
89
|
+
end
|
90
|
+
return WriteExceptionExampleResult.new(e)
|
91
|
+
end
|
92
|
+
|
93
|
+
return SuccessExampleResult.new if value == result
|
94
|
+
|
95
|
+
formated_result = TypeConverter.instance.auto_convert_object(
|
96
|
+
fixture,
|
97
|
+
@name,
|
98
|
+
value_format,
|
99
|
+
result)
|
100
|
+
|
101
|
+
formated_value = TypeConverter.instance.auto_convert_object(
|
102
|
+
fixture,
|
103
|
+
@name,
|
104
|
+
value_format,
|
105
|
+
value)
|
106
|
+
|
107
|
+
return WriteIgnoredExampleResult.new(formated_result) if value == ''
|
108
|
+
return WriteExpectedExampleResult.new(formated_value, formated_result)
|
109
|
+
end
|
110
|
+
|
111
|
+
private
|
112
|
+
def get_result(fixture)
|
113
|
+
fixture.send @formated_name
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
end #module GreenPepper
|
@@ -0,0 +1,79 @@
|
|
1
|
+
=begin
|
2
|
+
author: Martin Provencher (martin.provencher@usherbrooke.ca)
|
3
|
+
date: March 23, 2009
|
4
|
+
=end
|
5
|
+
module GreenPepper
|
6
|
+
|
7
|
+
require 'greenpepper/example/nameresolver'
|
8
|
+
require 'greenpepper/example/examplewithfixture'
|
9
|
+
require 'greenpepper/example/exampleheader'
|
10
|
+
require 'greenpepper/converter'
|
11
|
+
require 'greenpepper/exception/greenpepperexception'
|
12
|
+
|
13
|
+
class SetupExample < ExampleWithFixture
|
14
|
+
|
15
|
+
attr_reader :values
|
16
|
+
FIXTURE_NAME_ROW = 0
|
17
|
+
FIXTURE_NAME_COL = 1
|
18
|
+
FIRST_DATA_ROW = 2
|
19
|
+
HEADER_ROW = 1
|
20
|
+
|
21
|
+
def initialize(fixture_name, name_resolver = NameResolver)
|
22
|
+
super fixture_name
|
23
|
+
@values = Array.new
|
24
|
+
@name_resolver= name_resolver
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_header(name)
|
28
|
+
header = ExampleInputHeader.new(@name_resolver.format_column_name(name),
|
29
|
+
@name_resolver)
|
30
|
+
@headers.push header
|
31
|
+
header
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_row(values_array)
|
35
|
+
@values.push values_array
|
36
|
+
end
|
37
|
+
|
38
|
+
def do_execute(results, fixture_class)
|
39
|
+
fixture = instantiate_fixture fixture_class
|
40
|
+
|
41
|
+
if !(fixture.respond_to? "enter_row")
|
42
|
+
ex = ErrorHelper.create_greenpepper_missing_method 'enter_row',
|
43
|
+
fixture_class
|
44
|
+
results.add FIXTURE_NAME_ROW, FIXTURE_NAME_COL,
|
45
|
+
WriteExceptionExampleResult.new(ex)
|
46
|
+
return results
|
47
|
+
end
|
48
|
+
|
49
|
+
@values.each_index{ |row_index|
|
50
|
+
headers.each_index{ |column_index|
|
51
|
+
header = headers[column_index]
|
52
|
+
string_value = @values[row_index][column_index]
|
53
|
+
value = TypeConverter.instance.auto_convert_string(
|
54
|
+
fixture, header.name, string_value)
|
55
|
+
|
56
|
+
begin
|
57
|
+
header.execute value, fixture
|
58
|
+
rescue => error
|
59
|
+
result = WriteExceptionExampleResult.new(error)
|
60
|
+
results.add row_index + FIRST_DATA_ROW, column_index, result
|
61
|
+
end
|
62
|
+
}
|
63
|
+
begin
|
64
|
+
result = fixture.enter_row
|
65
|
+
if result
|
66
|
+
result = WriteSucessExampleResult.new true
|
67
|
+
else
|
68
|
+
result = WriteFailExampleResult.new
|
69
|
+
end
|
70
|
+
rescue => error
|
71
|
+
result = WriteExceptionExampleResult.new(error)
|
72
|
+
end
|
73
|
+
results.add row_index + FIRST_DATA_ROW, headers.size, result
|
74
|
+
}
|
75
|
+
results
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end #module GreenPepper
|
@@ -0,0 +1,14 @@
|
|
1
|
+
=begin
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
3
|
+
date: September 27, 2009
|
4
|
+
=end
|
5
|
+
module GreenPepper
|
6
|
+
|
7
|
+
class SilentExample
|
8
|
+
def execute
|
9
|
+
results = HtmlTableExecutionResults.new
|
10
|
+
results.add(0, 0, IgnoredExampleResult.new)
|
11
|
+
results
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
=begin
|
2
|
+
author: Simon Mathieu (simon.math@gmail.com)
|
3
|
+
date: March 30, 2009
|
4
|
+
=end
|
5
|
+
|
6
|
+
require 'greenpepper/example/executionresults'
|
7
|
+
|
8
|
+
module GreenPepper
|
9
|
+
|
10
|
+
class UnknownExample
|
11
|
+
def execute
|
12
|
+
results = HtmlTableExecutionResults.new
|
13
|
+
results.add 0, 0, ErrorExampleResult.new
|
14
|
+
results
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
=begin
|
2
|
+
author: Pascal Ouellet (pas.ouellet@gmail.com)
|
3
|
+
date: March 17, 2009
|
4
|
+
=end
|
5
|
+
module GreenPepper
|
6
|
+
|
7
|
+
class GreenPepperError < StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
class GreenPepperArgumentError < GreenPepperError
|
11
|
+
end
|
12
|
+
|
13
|
+
class GreenPepperMalformedTableError < GreenPepperError
|
14
|
+
end
|
15
|
+
|
16
|
+
class GreenPepperLibXmlError < GreenPepperError
|
17
|
+
end
|
18
|
+
|
19
|
+
class GreenPepperTypeError < GreenPepperError
|
20
|
+
end
|
21
|
+
|
22
|
+
class GreenPepperSecurityError < GreenPepperError
|
23
|
+
end
|
24
|
+
|
25
|
+
class GreenPepperMissingMethodError < GreenPepperError
|
26
|
+
end
|
27
|
+
|
28
|
+
class GreenPepperMissingHeaderError < GreenPepperError
|
29
|
+
end
|
30
|
+
|
31
|
+
class GreenPepperElementError < GreenPepperError
|
32
|
+
end
|
33
|
+
|
34
|
+
class GreenPepperFileNotFoundError < GreenPepperError
|
35
|
+
end
|
36
|
+
|
37
|
+
class GreenPepperRepositoryError < GreenPepperError
|
38
|
+
end
|
39
|
+
|
40
|
+
class GreenPepperUnknownActionError < GreenPepperError
|
41
|
+
end
|
42
|
+
|
43
|
+
class GreenPepperNoScenarioInTag < GreenPepperError
|
44
|
+
end
|
45
|
+
|
46
|
+
module ErrorHelper
|
47
|
+
def ErrorHelper.raise_greenpepper_missing_method(func, fixture)
|
48
|
+
raise create_greenpepper_missing_method(func, fixture)
|
49
|
+
end
|
50
|
+
|
51
|
+
def ErrorHelper.create_greenpepper_missing_method(func, fixture)
|
52
|
+
GreenPepperMissingMethodError.new(
|
53
|
+
"Cannot find method #{func} on fixture #{fixture.class}.")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end #module GreenPepper
|