test4requirements 0.1.0.alpha.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+