test4requirements 0.1.0.alpha.2 → 0.1.0

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.
@@ -40,20 +40,18 @@ Example:
40
40
  =end
41
41
  def assign_requirement(req)
42
42
  raise RuntimeError, "No requirements defined for #{self}" unless requirements
43
- requirements.assign_test(req, self.name)
43
+ requirements.assign_test(req, self.name, @_result)
44
44
  end
45
- alias :run_test_old :run_test
46
- =begin rdoc
47
- Add info about a successfull test to the assigned requirement.
48
- =end
45
+
46
+ alias :old_run_test :run_test
49
47
  def run_test
50
- run_test_old
51
- #this code is left if a problem occured.
52
- #in other words: if we reach this place, then the test was sucesfull
53
- if requirements
54
- requirements.test_successfull(self.name)
55
- end #if requirements
56
- end #def run_test
48
+ old_run_test
49
+ #Store successfull test run,
50
+ self.requirements.each{|req|
51
+ req.result(self.name, :ok) unless req[self.name].nil?
52
+ } if requirements
53
+ end
54
+
57
55
  end #class TestCase
58
56
  end #module Unit
59
57
  end #module Test
@@ -1,65 +1,65 @@
1
- =begin rdoc
2
- Some check routines to check the installation
3
- =end
4
-
5
- puts RUBY_DESCRIPTION
6
-
7
-
8
- gem 'test-unit'
9
- #~ require 'test/unit'
10
- require 'test/unit/version'
11
-
12
- =begin rdoc
13
-
14
- Encoding#ascii_compatible?
15
-
16
- Test::Unit::Assertions contains:
17
- if string.respond_to?(:encoding) and
18
- !string.encoding.ascii_compatible?
19
- string = string.dup.force_encoding("ASCII-8BIT")
20
- end
21
- Probably added with test-unit 2.2.0
22
- http://rubyforge.org/forum/forum.php?forum_id=38792
23
- support not ASCII compatible string diff.
24
-
25
- Encoding#ascii_compatible? was added with:
26
- http://redmine.ruby-lang.org/issues/show/1900
27
- Applied in changeset r24480.
28
-
29
- http://www.ruby-forum.com/topic/192885
30
-
31
-
32
- =end
33
- if Test::Unit::VERSION >= '2.3.1'
34
- if ! 'string'.encoding.respond_to?(:'ascii_compatible?')
35
- puts "Encoding#ascii_compatible? not defined - Test::Unit #{Test::Unit::VERSION} needs it"
36
- end
37
- end
38
-
39
- #~ gem 'test-unit', '= 2.3.1'
40
- #~ require 'test/unit'
41
- #~ class Test_Requirement < Test::Unit::TestCase
42
- #~ def test_interface_ok()
43
- #~ assert_equal('a', 'b')
44
- #~ end
45
- #~ end
46
-
47
-
48
- __END__
49
- RUBY_VERSION
50
- RUBY_PATCHLEVEL
51
- RUBY_RELEASE_DATE
52
-
53
- Worked fine:
54
- gem 'test-unit', '= 2.1.1'
55
-
56
-
57
- gem 'test-unit', '= 2.3.1'
58
- ruby 1.9.1
59
-
60
-
61
- if string.respond_to?(:encoding) and
62
- !string.encoding.ascii_compatible?
63
- string = string.dup.force_encoding("ASCII-8BIT")
64
- end
65
-
1
+ =begin rdoc
2
+ Some check routines to check the installation
3
+ =end
4
+
5
+ puts RUBY_DESCRIPTION
6
+
7
+
8
+ gem 'test-unit'
9
+ #~ require 'test/unit'
10
+ require 'test/unit/version'
11
+
12
+ =begin rdoc
13
+
14
+ Encoding#ascii_compatible?
15
+
16
+ Test::Unit::Assertions contains:
17
+ if string.respond_to?(:encoding) and
18
+ !string.encoding.ascii_compatible?
19
+ string = string.dup.force_encoding("ASCII-8BIT")
20
+ end
21
+ Probably added with test-unit 2.2.0
22
+ http://rubyforge.org/forum/forum.php?forum_id=38792
23
+ support not ASCII compatible string diff.
24
+
25
+ Encoding#ascii_compatible? was added with:
26
+ http://redmine.ruby-lang.org/issues/show/1900
27
+ Applied in changeset r24480.
28
+
29
+ http://www.ruby-forum.com/topic/192885
30
+
31
+
32
+ =end
33
+ if Test::Unit::VERSION >= '2.3.1'
34
+ if ! 'string'.encoding.respond_to?(:'ascii_compatible?')
35
+ puts "Encoding#ascii_compatible? not defined - Test::Unit #{Test::Unit::VERSION} needs it"
36
+ end
37
+ end
38
+
39
+ #~ gem 'test-unit', '= 2.3.1'
40
+ #~ require 'test/unit'
41
+ #~ class Test_Requirement < Test::Unit::TestCase
42
+ #~ def test_interface_ok()
43
+ #~ assert_equal('a', 'b')
44
+ #~ end
45
+ #~ end
46
+
47
+
48
+ __END__
49
+ RUBY_VERSION
50
+ RUBY_PATCHLEVEL
51
+ RUBY_RELEASE_DATE
52
+
53
+ Worked fine:
54
+ gem 'test-unit', '= 2.1.1'
55
+
56
+
57
+ gem 'test-unit', '= 2.3.1'
58
+ ruby 1.9.1
59
+
60
+
61
+ if string.respond_to?(:encoding) and
62
+ !string.encoding.ascii_compatible?
63
+ string = string.dup.force_encoding("ASCII-8BIT")
64
+ end
65
+
@@ -1,9 +1,10 @@
1
1
  $:.unshift('../lib')
2
- gem 'test-unit'
2
+ gem 'test-unit', '<= 2.1.1' if RUBY_VERSION == '1.9.1'
3
3
  require 'test/unit'
4
4
  require 'test4requirements/requirement.rb'
5
5
  include Test4requirements
6
6
 
7
+
7
8
  class Test_Requirement < Test::Unit::TestCase
8
9
 
9
10
  def test_interface_ok()
@@ -24,59 +25,67 @@ class Test_Requirement < Test::Unit::TestCase
24
25
  assert_nothing_raised { req = Requirement.new(1, :reference => 'ref')}
25
26
  assert_equal('ref', req.reference)
26
27
  end
28
+ def test_interface_option_key()
29
+ req = nil
30
+ assert_nothing_raised { req = Requirement.new(1, :key => 1)}
31
+ assert_raise(ArgumentError, "ambiguous key") { Requirement.new(1, :key => 2)}
32
+ end
27
33
  def test_interface_option()
28
34
  assert_raise(ArgumentError) { Requirement.new(1, :undefined_key => 'desc') }
29
35
  end
30
36
 
31
37
  def test_no_test_assignment()
32
38
  req = Requirement.new(1)
33
- assert_false(req.tested?)
39
+ assert_false(req.test_defined?)
34
40
  assert_nil(req.successfull?)
35
41
  end
36
42
 
37
43
  def test_test_assignment()
38
44
  req = Requirement.new(1)
39
45
  req.test='loc'
40
- assert_equal(1,req.tested?)
46
+ assert_equal(1,req.test_defined?)
41
47
  req.test='loc'
42
- assert_equal(1,req.tested?, "No duplicate definition")
48
+ assert_equal(1,req.test_defined?, "No duplicate definition")
43
49
  req.test='loc2'
44
- assert_equal(2,req.tested?, "Two TestCases")
50
+ assert_equal(2,req.test_defined?, "Two TestCases")
45
51
 
46
- assert_false(req.successfull?)
52
+ assert_nil(req.successfull?)
47
53
  end
48
54
 
49
55
  def test_test_success()
50
56
  req = Requirement.new(1)
51
57
  req.test='loc'
52
- assert_equal(1,req.tested?)
53
- assert_false(req.successfull?)
58
+ assert_equal(1,req.test_defined?)
59
+ assert_nil(req.successfull?)
54
60
 
55
- req.successfull_test('loc')
56
- assert_equal(1,req.tested?)
61
+ req.result('loc', :ok)
62
+ assert_equal(1,req.test_defined?)
57
63
  assert_true(req.successfull?)
58
64
  end
59
65
 
60
66
  def test_test_success_without_assignment()
61
67
  req = Requirement.new(1)
62
- assert_false(req.tested?)
68
+ assert_false(req.test_defined?)
63
69
  assert_nil(req.successfull?)
64
70
 
65
- req.successfull_test('loc')
66
- assert_equal(1,req.tested?)
71
+ #~ req.test = 'loc'
72
+ req.result('loc', :ok)
73
+ assert_equal(1,req.test_defined?)
67
74
  assert_true(req.successfull?)
68
75
  end
69
76
 
70
77
  def test_2test_success()
71
78
  req = Requirement.new(1)
72
79
  req.test='loc'
73
- assert_equal(1,req.tested?)
74
- assert_false(req.successfull?)
80
+ assert_equal(1,req.test_defined?)
81
+ assert_nil(req.successfull?, 'Test was not executed')
75
82
 
76
- req.successfull_test('loc2')
77
- assert_equal(2,req.tested?)
78
- assert_false(req.successfull?, "One of the tests was unsuccessfull")
83
+ req.test = 'loc2'
84
+ req.result('loc2', :ok)
85
+ assert_equal(2,req.test_defined?)
86
+ assert_nil(req.successfull?, "One of the tests was not done")
87
+ req.result('loc', :ok)
88
+ assert_true(req.successfull?)
79
89
  end
80
-
81
90
 
82
91
  end
@@ -1,4 +1,5 @@
1
1
  $:.unshift('../lib')
2
+ gem 'test-unit', '<= 2.1.1' if RUBY_VERSION == '1.9.1'
2
3
  gem 'test-unit'
3
4
  require 'test/unit'
4
5
  require 'log4r'
@@ -13,72 +14,87 @@ RequirementList.report_type_default = nil
13
14
  class Test_RequirementList < Test::Unit::TestCase
14
15
 
15
16
  def test_interface()
16
- assert_nothing_raised { RequirementList.new()}
17
- assert_nothing_raised { RequirementList.new(1)}
18
- assert_nothing_raised { RequirementList.new(Requirement.new(1))}
17
+ assert_raise(ArgumentError) { RequirementList.new()}
18
+ assert_nothing_raised { RequirementList.new(:reqId)}
19
+ assert_nothing_raised { RequirementList.new(:reqId,1)}
20
+ assert_nothing_raised { RequirementList.new(:reqId, Requirement.new(1))}
19
21
  end
20
22
 
21
23
  def test_add_requirement()
22
- req = RequirementList.new()
23
- assert_nothing_raised { req << Requirement.new(1) }
24
- assert_raise(ArgumentError) { req << 1 }
24
+ req = RequirementList.new(:reqId)
25
+ assert_nothing_raised { req << Requirement.new(:req1) }
26
+ assert_raise(ArgumentError) { req << :req1 }
27
+ assert_equal(1, req.each.size)
28
+ assert_equal(:req1, req.each.first.key)
25
29
  end
26
-
30
+
31
+ def test_load()
32
+ req = RequirementList.new(:reqId)
33
+ #~ pend('load')
34
+ assert_nothing_raised { req.load( {
35
+ req1: {
36
+ description: 'What is required',
37
+ reference: 'Customer Requirement, Version 2011-08-02, page 12'},
38
+ req2: {
39
+ description: 'What is required',
40
+ reference: 'Customer Requirement, Version 2011-08-02, page 13'}
41
+ })
42
+ }
43
+ assert_equal(2, req.each.size)
44
+ assert_equal(:req1, req.each.first.key)
45
+ assert_equal(:req2, req.each.last.key)
46
+
47
+ end
48
+
27
49
  def test_interface_double_definition()
28
- assert_raise(ArgumentError) { RequirementList.new(1, 1) }
29
- assert_raise(ArgumentError) { RequirementList.new(Requirement.new(1),1)}
30
- assert_raise(ArgumentError) { RequirementList.new(Requirement.new(1),Requirement.new(1))}
50
+ assert_raise(ArgumentError) { RequirementList.new(:reqId, 1, 1) }
51
+ assert_raise(ArgumentError) { RequirementList.new(:reqId, Requirement.new(1),1)}
52
+ assert_raise(ArgumentError) { RequirementList.new(:reqId, Requirement.new(1),Requirement.new(1))}
31
53
  end
32
54
 
33
55
  def test_unassigned_test()
34
- req = RequirementList.new()
56
+ req = RequirementList.new(:reqId)
35
57
  assert_raise(ArgumentError, "Unkwown req. can't be assigned") { req.assign_test(1, 'loc')}
36
58
  assert_equal(nil, req[1], "Unassigned test returns nil")
37
59
  #~ assert_false(req[1].tested?)
38
60
  #~ assert_false(req[1].successfull?)
39
61
  end
40
62
  def test_assign_test()
41
- req = RequirementList.new()
42
- assert_nothing_raised("Assign requirement") { req << Requirement.new(1) }
43
- assert_nothing_raised("Assign test") { req.assign_test(1, 'loc') }
44
- assert_instance_of(Requirement, req[1])
45
- assert_equal(false, req[1]['loc'])
46
- assert_equal(1,req[1].tested?)
47
- assert_false(req[1].successfull?)
63
+ req = RequirementList.new(:reqId)
64
+ assert_nothing_raised("Assign requirement") { req << Requirement.new(:req1) }
65
+ assert_nothing_raised("Assign test") { req.assign_test(:req1, 'loc', Test::Unit::TestResult.new()) }
66
+ assert_instance_of(Requirement, req[:req1])
67
+ assert_equal(false, req[:req1]['loc'])
68
+ assert_equal(1,req[:req1].test_defined?)
69
+ assert_nil(req[:req1].successfull?)
48
70
  end
49
71
 
50
72
  def test_successfull_test()
51
- req = RequirementList.new()
73
+ req = RequirementList.new(:reqId)
52
74
  req << Requirement.new(1)
53
- req.assign_test(1, 'loc') #not neccesary
75
+ req.assign_test(1, 'loc', Test::Unit::TestResult.new()) #not neccesary
54
76
  assert_false(req[1]['loc'])
55
77
 
56
- assert_nothing_raised("Successfull test") { req.test_successfull('loc') }
78
+ assert_nothing_raised("Successfull test") { req[1].result('loc',:ok) }
57
79
  assert_instance_of(Requirement, req[1])
58
- assert_equal(1,req[1].tested?)
80
+ assert_equal(1,req[1].test_defined?)
59
81
  assert_true(req[1]['loc'])
60
82
  assert_true(req[1].successfull?)
61
83
  end
62
84
 
63
- def test_successfull_test_without_assignment()
64
- req = RequirementList.new()
65
- req << Requirement.new(1)
66
-
67
- assert_nothing_raised("Successfull test") { req.test_successfull('loc') }
68
- assert_instance_of(Requirement, req[1])
69
- assert_false(req[1].tested?)
70
- assert_nil(req[1].successfull?)
71
- end
72
85
 
73
86
  def test_unsuccessfull_test()
74
- req = RequirementList.new()
87
+ req = RequirementList.new(:reqId)
75
88
  req << Requirement.new(1)
76
- req.assign_test(1, 'loc')
89
+ req.assign_test(1, 'loc', Test::Unit::TestResult.new())
77
90
  assert_instance_of(Requirement, req[1])
78
91
  assert_equal(false, req[1]['loc'])
79
- assert_equal(1,req[1].tested?)
92
+ assert_equal(1,req[1].test_defined?)
93
+ assert_nil(req[1].successfull?)
94
+ req[1].result('loc', Test::Unit::Failure.new(1,2,3))
80
95
  assert_false(req[1].successfull?)
81
96
  end
82
97
 
83
98
  end
84
99
 
100
+
@@ -1,199 +1,257 @@
1
- $:.unshift('../lib')
2
- #~ gem 'test-unit'
3
- #~ require 'test/unit'
4
- require 'test4requirements.rb'
5
- include Test4requirements
6
-
7
- RequirementList.report_type_default = nil
8
-
9
- #IO to catch stdout in TestRunner
10
- IO_Catcher = Class.new(IO){ def write(arg);end }.new(2, 'w')
11
-
12
- class Test_RequirementList_Overview_without_test < Test::Unit::TestCase
13
- def setup
14
- @reqs = RequirementList.new(1,2,3)
15
- @testcase = Class.new(Test::Unit::TestCase)
16
- @testcase.requirements= @reqs
17
- #~ @testcase.suite() #run tests
18
- end
19
-
20
- def test_overview_default()
21
- assert_kind_of(Hash, @reqs.overview)
22
- assert_equal([1,2,3], @reqs.overview.keys)
23
- @reqs.overview.each{|key,req| assert_nil(req) }
24
- end
25
-
26
- #same as default
27
- def test_overview_nil()
28
- @reqs.report_type = nil
29
- assert_kind_of(Hash, @reqs.overview)
30
- assert_equal([1,2,3], @reqs.overview.keys)
31
- end
32
-
33
- def test_overview_txt()
34
- @reqs.report_type = :txt
35
- assert_kind_of(Array, @reqs.overview)
36
- assert_equal(3, @reqs.overview.size)
37
- assert_equal(["Requirement 1 was not tested",
38
- "Requirement 2 was not tested",
39
- "Requirement 3 was not tested"], @reqs.overview)
40
- end
41
-
42
- def test_overview_unknown()
43
- assert_raise(ArgumentError){@reqs.report_type = :unknown}
44
- assert_nothing_raised{@reqs.overview}
45
- assert_raise(ArgumentError){@reqs.overview(:unknown)}
46
- end
47
- end
48
-
49
-
50
- class Test_RequirementList_Overview_with_test < Test::Unit::TestCase
51
- def setup
52
- @reqs = RequirementList.new(:req1,:req2,:req3)
53
- @testcase = Class.new(Test::Unit::TestCase) do
54
- #Set class name. Normally class name.
55
- def self.name;'Test_ReqList';end
56
-
57
- def test_1()
58
- assign_requirement(:req1) #this test is testing requirement req1
59
- assert_equal(2,1+1)
60
- end
61
- def test_2()
62
- assign_requirement(:req2) #this test is testing requirement req2 without success
63
- assert_equal(3,1+1)
64
- end
65
- end
66
- @testcase.requirements= @reqs
67
-
68
- suite = @testcase.suite #run tests
69
- Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
70
- end
71
-
72
- def test_testcase_definition()
73
- assert_true(@testcase.instance_methods.include?(:test_1))
74
- assert_true(@testcase.instance_methods.include?(:test_2))
75
- #~ assert_true(@testcase.respond_to?(:test_1))
76
- #~ assert_true(@testcase.respond_to?(:test_2))
77
- end
78
-
79
- def test_overview_default()
80
- assert_kind_of(Hash, @reqs.overview)
81
- assert_equal([:req1,:req2,:req3], @reqs.overview.keys)
82
- assert_equal([true,false,nil], @reqs.overview.values)
83
- end
84
-
85
- #same as default
86
- def test_overview_nil()
87
- @reqs.report_type = nil
88
- assert_kind_of(Hash, @reqs.overview)
89
- assert_equal([true,false,nil], @reqs.overview.values)
90
- end
91
-
92
- def test_overview_txt()
93
- @reqs.report_type = :txt
94
- assert_kind_of(Array, @reqs.overview)
95
- assert_equal(3, @reqs.overview.size)
96
- assert_equal(["Requirement req1 was successfull tested (test_1(Test_ReqList))",
97
- "Requirement req2 was unsuccessfull tested (test_2(Test_ReqList))",
98
- "Requirement req3 was not tested"
99
- ], @reqs.overview)
100
- end
101
- end
102
-
103
-
104
-
105
- class Test_two_tests_for_one_requirement_successfull < Test::Unit::TestCase
106
- def setup
107
- @reqs = reqs = RequirementList.new(:req1)
108
- testcase = Class.new(Test::Unit::TestCase) do
109
- #Set class name. Normally class name.
110
- def self.name;'Test_ReqList';end
111
- self.requirements= reqs
112
-
113
- def test_1()
114
- assign_requirement(:req1) #this test is testing requirement req1
115
- assert_equal(2,1+1)
116
- end
117
- def test_2()
118
- assign_requirement(:req1) #this test is testing requirement req2 without success
119
- assert_equal(2,1+1)
120
- end
121
- end
122
-
123
- suite = testcase.suite #run tests
124
- Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
125
- end
126
- def test_duplicate_test
127
- assert_equal([:req1], @reqs.overview.keys)
128
- assert_equal([true], @reqs.overview.values)
129
- end
130
- def test_overview_txt()
131
- @reqs.report_type = :txt
132
- assert_equal(["Requirement req1 was successfull tested (test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
133
- end
134
- end
135
-
136
- class Test_two_tests_for_one_requirement_unsuccessfull < Test::Unit::TestCase
137
- def setup
138
- @reqs = reqs = RequirementList.new(:req1)
139
- testcase = Class.new(Test::Unit::TestCase) do
140
- #Set class name. Normally class name.
141
- def self.name;'Test_ReqList';end
142
- self.requirements= reqs
143
- #Unsuccessfull
144
- def test_1()
145
- assign_requirement(:req1) #this test is testing requirement req1
146
- assert_equal(3,1+1)
147
- end
148
- #Unsuccessfull
149
- def test_2()
150
- assign_requirement(:req1) #this test is testing requirement req2 without success
151
- assert_equal(3,1+1)
152
- end
153
- end
154
-
155
- suite = testcase.suite #run tests
156
- Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
157
- end
158
- def test_duplicate_test
159
- assert_equal([:req1], @reqs.overview.keys)
160
- assert_equal([false], @reqs.overview.values)
161
- end
162
- def test_overview_txt()
163
- @reqs.report_type = :txt
164
- assert_equal(["Requirement req1 was unsuccessfull tested (test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
165
- end
166
- end
167
-
168
- class Test_two_tests_for_one_requirement_mixed_result < Test::Unit::TestCase
169
- def setup
170
- @reqs = reqs = RequirementList.new(:req1)
171
- testcase = Class.new(Test::Unit::TestCase) do
172
- #Set class name. Normally class name.
173
- def self.name;'Test_ReqList';end
174
- self.requirements= reqs
175
- #Successfull
176
- def test_1()
177
- assign_requirement(:req1) #this test is testing requirement req1
178
- assert_equal(2,1+1)
179
- end
180
- #Unsuccessfull
181
- def test_2()
182
- assign_requirement(:req1) #this test is testing requirement req2 without success
183
- assert_equal(3,1+1)
184
- end
185
- end
186
-
187
- suite = testcase.suite #run tests
188
- Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
189
- end
190
- def test_duplicate_test
191
- assert_equal([:req1], @reqs.overview.keys)
192
- assert_equal([false], @reqs.overview.values)
193
- end
194
- def test_overview_txt()
195
- @reqs.report_type = :txt
196
- assert_equal(["Requirement req1 was unsuccessfull tested (OK: test_1(Test_ReqList), Failure: test_2(Test_ReqList))",], @reqs.overview)
197
- end
198
- end
199
-
1
+ $:.unshift('../lib')
2
+ #~ gem 'test-unit'
3
+ #~ require 'test/unit'
4
+ require 'test4requirements.rb'
5
+ include Test4requirements
6
+
7
+ RequirementList.report_type_default = nil
8
+
9
+ #IO to catch stdout in TestRunner
10
+ IO_Catcher = Class.new(IO){ def write(arg);end }.new(2, 'w')
11
+
12
+ class Test_RequirementList_Overview_without_test_execution < Test::Unit::TestCase
13
+ def setup
14
+ @reqs = RequirementList.new(:reqId, 1,2,3)
15
+ @testcase = Class.new(Test::Unit::TestCase)
16
+ @testcase.requirements= @reqs
17
+ #~ @testcase.suite() #run tests
18
+ end
19
+
20
+ def test_overview_default()
21
+ assert_kind_of(Hash, @reqs.overview)
22
+ assert_equal([1,2,3], @reqs.overview.keys)
23
+ @reqs.overview.each{|key,req| assert_nil(req) }
24
+ end
25
+
26
+ #same as default
27
+ def test_overview_nil()
28
+ @reqs.report_type = nil
29
+ assert_kind_of(Hash, @reqs.overview)
30
+ assert_equal([1,2,3], @reqs.overview.keys)
31
+ end
32
+
33
+ def test_overview_txt()
34
+ @reqs.report_type = :txt
35
+ assert_kind_of(Array, @reqs.overview)
36
+ assert_equal(3, @reqs.overview.size)
37
+ assert_equal(["Requirement 1 was not tested",
38
+ "Requirement 2 was not tested",
39
+ "Requirement 3 was not tested"], @reqs.overview)
40
+ end
41
+
42
+ def test_overview_unknown()
43
+ assert_raise(ArgumentError){@reqs.report_type = :unknown}
44
+ assert_nothing_raised{@reqs.overview}
45
+ assert_raise(ArgumentError){@reqs.overview(:unknown)}
46
+ end
47
+ end
48
+
49
+
50
+
51
+ class Test_RequirementList_Overview_with_test_execution < Test::Unit::TestCase
52
+ def setup
53
+ @reqs = RequirementList.new(:reqId, :req1,:req2,:req3)
54
+ @testcase = Class.new(Test::Unit::TestCase) do
55
+ #Set class name. Normally class name.
56
+ def self.name;'Test_ReqList';end
57
+
58
+ def test_1()
59
+ assign_requirement(:req1) #this test is testing requirement req1
60
+ assert_equal(2,1+1)
61
+ end
62
+ def test_2()
63
+ assign_requirement(:req2) #this test is testing requirement req2 without success
64
+ assert_equal(3,1+1)
65
+ end
66
+ end
67
+ @testcase.requirements= @reqs
68
+
69
+ suite = @testcase.suite #run tests
70
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
71
+ end
72
+
73
+ def test_testcase_definition()
74
+ assert_true(@testcase.instance_methods.include?(:test_1))
75
+ assert_true(@testcase.instance_methods.include?(:test_2))
76
+ #~ assert_true(@testcase.respond_to?(:test_1))
77
+ #~ assert_true(@testcase.respond_to?(:test_2))
78
+ end
79
+
80
+ def test_overview_default()
81
+ assert_kind_of(Hash, @reqs.overview)
82
+ assert_equal([:req1,:req2,:req3], @reqs.overview.keys)
83
+ assert_equal([true,false,nil], @reqs.overview.values)
84
+ end
85
+
86
+ #same as default
87
+ def test_overview_nil()
88
+ @reqs.report_type = nil
89
+ assert_kind_of(Hash, @reqs.overview)
90
+ assert_equal([true,false,nil], @reqs.overview.values)
91
+ end
92
+
93
+ def test_overview_txt()
94
+ @reqs.report_type = :txt
95
+ assert_kind_of(Array, @reqs.overview)
96
+ assert_equal(3, @reqs.overview.size)
97
+ assert_equal(["Requirement req1 was successfull tested (OK: test_1(Test_ReqList))",
98
+ "Requirement req2 was unsuccessfull tested (Failure: test_2(Test_ReqList))",
99
+ "Requirement req3 was not tested"
100
+ ], @reqs.overview)
101
+ end
102
+ end
103
+
104
+
105
+
106
+ class Test_two_tests_for_one_requirement_successfull < Test::Unit::TestCase
107
+ def setup
108
+ @reqs = reqs = RequirementList.new(:reqId, :req1)
109
+ testcase = Class.new(Test::Unit::TestCase) do
110
+ #Set class name. Normally class name.
111
+ def self.name;'Test_ReqList';end
112
+ self.requirements= reqs
113
+
114
+ def test_1()
115
+ assign_requirement(:req1) #this test is testing requirement req1
116
+ assert_equal(2,1+1)
117
+ end
118
+ def test_2()
119
+ assign_requirement(:req1) #this test is testing requirement req2 without success
120
+ assert_equal(2,1+1)
121
+ end
122
+ end
123
+
124
+ suite = testcase.suite #run tests
125
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
126
+ end
127
+ def test_duplicate_test
128
+ assert_equal([:req1], @reqs.overview.keys)
129
+ assert_equal([true], @reqs.overview.values)
130
+ end
131
+ def test_overview_txt()
132
+ @reqs.report_type = :txt
133
+ assert_equal(["Requirement req1 was successfull tested (OK: test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
134
+ end
135
+ end
136
+
137
+ class Test_two_tests_for_one_requirement_unsuccessfull < Test::Unit::TestCase
138
+ def setup
139
+ @reqs = reqs = RequirementList.new(:reqId, :req1)
140
+ testcase = Class.new(Test::Unit::TestCase) do
141
+ #Set class name. Normally class name.
142
+ def self.name;'Test_ReqList';end
143
+ self.requirements= reqs
144
+ #Unsuccessfull
145
+ def test_1()
146
+ assign_requirement(:req1) #this test is testing requirement req1
147
+ assert_equal(3,1+1)
148
+ end
149
+ #Unsuccessfull
150
+ def test_2()
151
+ assign_requirement(:req1) #this test is testing requirement req2 without success
152
+ assert_equal(3,1+1)
153
+ end
154
+ end
155
+
156
+ suite = testcase.suite #run tests
157
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
158
+ end
159
+ def test_duplicate_test
160
+ assert_equal([:req1], @reqs.overview.keys)
161
+ assert_equal([false], @reqs.overview.values)
162
+ end
163
+ def test_overview_txt()
164
+ @reqs.report_type = :txt
165
+ assert_equal(["Requirement req1 was unsuccessfull tested (Failure: test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
166
+ end
167
+ end
168
+
169
+ class Test_two_tests_for_one_requirement_mixed_result < Test::Unit::TestCase
170
+ def setup
171
+ @reqs = reqs = RequirementList.new(:reqId, :req1)
172
+ testcase = Class.new(Test::Unit::TestCase) do
173
+ #Set class name. Normally class name.
174
+ def self.name;'Test_ReqList';end
175
+ self.requirements= reqs
176
+ #Successfull
177
+ def test_1()
178
+ assign_requirement(:req1) #this test is testing requirement req1
179
+ assert_equal(2,1+1)
180
+ end
181
+ #Unsuccessfull
182
+ def test_2()
183
+ assign_requirement(:req1) #this test is testing requirement req2 without success
184
+ assert_equal(3,1+1)
185
+ end
186
+ end
187
+
188
+ suite = testcase.suite #run tests
189
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
190
+ end
191
+ def test_duplicate_test
192
+ assert_equal([:req1], @reqs.overview.keys)
193
+ assert_equal([false], @reqs.overview.values)
194
+ end
195
+ def test_overview_txt()
196
+ @reqs.report_type = :txt
197
+ assert_equal(["Requirement req1 was unsuccessfull tested (OK: test_1(Test_ReqList), Failure: test_2(Test_ReqList))",], @reqs.overview)
198
+ end
199
+ end
200
+
201
+
202
+
203
+ class Test_pend < Test::Unit::TestCase
204
+ def setup
205
+ @reqs = reqs = RequirementList.new(:reqId, :req_pend)
206
+ testcase = Class.new(Test::Unit::TestCase) do
207
+ #Set class name. Normally class name.
208
+ def self.name;'Test_ReqList';end
209
+ self.requirements= reqs
210
+ #Successfull
211
+ def test_pend()
212
+ assign_requirement(:req_pend)
213
+ pend("Pending")
214
+ end
215
+ end
216
+
217
+ suite = testcase.suite #run tests
218
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
219
+ end
220
+ def test_pend
221
+ assert_equal([:req_pend], @reqs.overview.keys)
222
+ assert_equal([false], @reqs.overview.values)
223
+ end
224
+ def test_pend_overview_txt
225
+ @reqs.report_type = :txt
226
+ assert_equal(["Requirement req_pend was unsuccessfull tested (Pending: test_pend(Test_ReqList))",], @reqs.overview)
227
+ end
228
+ end
229
+
230
+ class Test_omit < Test::Unit::TestCase
231
+ def setup
232
+ @reqs = reqs = RequirementList.new(:reqId, :req_omit)
233
+ testcase = Class.new(Test::Unit::TestCase) do
234
+ #Set class name. Normally class name.
235
+ def self.name;'Test_ReqList';end
236
+ self.requirements= reqs
237
+ def test_omit()
238
+ assign_requirement(:req_omit)
239
+ omit("omiting") if true
240
+ end
241
+ end
242
+
243
+ suite = testcase.suite #run tests
244
+ Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
245
+ end
246
+ def test_omit
247
+ assert_equal([:req_omit], @reqs.overview.keys)
248
+ assert_equal([false], @reqs.overview.values)
249
+ end
250
+ def test_omit_overview_txt()
251
+ @reqs.report_type = :txt
252
+ assert_equal(["Requirement req_omit was unsuccessfull tested (Omission: test_omit(Test_ReqList))"], @reqs.overview)
253
+ end
254
+ end
255
+
256
+
257
+