greenbar 0.1.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -47
- data/doc/examples/DateSetup.rb +1 -1
- data/doc/examples/TimeSetup.rb +1 -1
- data/lib/greenbar/ClassMethodSetup.rb +6 -9
- data/lib/greenbar/DateSetup.rb +11 -14
- data/lib/greenbar/TimeSetup.rb +10 -14
- data/rakefile.rb +11 -12
- data/test/DateSetupTest.rb +10 -5
- data/test/TimeSetupTest.rb +8 -4
- metadata +4 -9
data/LICENSE
CHANGED
@@ -1,47 +1,20 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
organization.
|
22
|
-
|
23
|
-
c) rename any non-standard executables so the names do not conflict
|
24
|
-
with standard executables, which must also be provided.
|
25
|
-
|
26
|
-
d) make other distribution arrangements with the author.
|
27
|
-
|
28
|
-
3. You may distribute the software in object code or executable
|
29
|
-
form, provided that you do at least ONE of the following:
|
30
|
-
|
31
|
-
a) distribute the executables and library files of the software,
|
32
|
-
together with instructions (in the manual page or equivalent)
|
33
|
-
on where to get the original distribution.
|
34
|
-
|
35
|
-
b) accompany the distribution with the machine-readable source of
|
36
|
-
the software.
|
37
|
-
|
38
|
-
c) give non-standard executables non-standard names, with
|
39
|
-
instructions on where to get the original software distribution.
|
40
|
-
|
41
|
-
d) make other distribution arrangements with the author.
|
42
|
-
|
43
|
-
4. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
44
|
-
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
45
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
46
|
-
PURPOSE.
|
47
|
-
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files
|
5
|
+
(the "Software"), to deal in the Software without restriction,
|
6
|
+
including without limitation the rights to use, copy, modify,
|
7
|
+
merge, publish, distribute, sublicense, and/or sell copies of the
|
8
|
+
Software, and to permit persons to whom the Software is furnished to
|
9
|
+
do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included
|
12
|
+
in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
17
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
18
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
19
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/doc/examples/DateSetup.rb
CHANGED
@@ -7,7 +7,7 @@ class DateDueCalculatorTest < Test::Unit::TestCase
|
|
7
7
|
include Greenbar::DateSetup
|
8
8
|
|
9
9
|
def test_calculate_date_due
|
10
|
-
|
10
|
+
make_Date_today_return Date.civil(2006, 4, 15)
|
11
11
|
calculator = DateDueCalculator.new
|
12
12
|
assert_equal Date.civil(2006, 4, 22), calculator.calculate_due_date(Movie.new(:standard))
|
13
13
|
assert_equal Date.civil(2006, 4, 19), calculator.calculate_due_date(Movie.new(:hotflick))
|
data/doc/examples/TimeSetup.rb
CHANGED
@@ -7,7 +7,7 @@ class WebServiceTest < Test::Unit::TestCase
|
|
7
7
|
include Greenbar::TimeSetup
|
8
8
|
|
9
9
|
def test_expires
|
10
|
-
|
10
|
+
make_Time_now_return Time.local(2006, 4, 16, 15, 23)
|
11
11
|
response = WebService.new.handle_request
|
12
12
|
assert_equal Time.local(2006, 4, 16, 16, 23), response.expires_at
|
13
13
|
end
|
@@ -44,10 +44,7 @@ end
|
|
44
44
|
# ===Usage
|
45
45
|
#
|
46
46
|
# 1. Include Greenbar::ClassMethodSetup in your test case.
|
47
|
-
# 2. Use replace_class_method, define_class_method, or replace_new
|
48
|
-
# as needed.
|
49
|
-
#
|
50
|
-
# You may change 'today' as often as you want.
|
47
|
+
# 2. Use replace_class_method, define_class_method, or replace_new as needed.
|
51
48
|
#
|
52
49
|
# ===Examples
|
53
50
|
#
|
@@ -85,7 +82,7 @@ module Greenbar::ClassMethodSetup
|
|
85
82
|
# Replaces a class method _method_name_ on class _target_class_. The implementation
|
86
83
|
# will be the _block_, and may take any number of arguments. The original method
|
87
84
|
# will be restored automatically. The primary purpose for this method is when you
|
88
|
-
# need to provide a mock implementation of
|
85
|
+
# need to provide a mock implementation of a class method.
|
89
86
|
#
|
90
87
|
def replace_class_method target_class, method_name, &block
|
91
88
|
@class_methods_to_restore << [target_class, method_name]
|
@@ -107,12 +104,12 @@ module Greenbar::ClassMethodSetup
|
|
107
104
|
|
108
105
|
# Replaces the new method on class _target_class_.
|
109
106
|
#
|
110
|
-
# In the canonical form, _results_ should
|
107
|
+
# In the canonical form, _results_ should respond to to_hash.
|
111
108
|
# The hash is keyed by arrays that match the expected arguments to the new method.
|
112
|
-
#
|
109
|
+
# The hash value is the object to return for that set of arguments.
|
113
110
|
#
|
114
|
-
# If _results_ does not respond to to_hash,
|
115
|
-
#
|
111
|
+
# If _results_ does not respond to to_hash, it provides the desired return value
|
112
|
+
# for a no-argument call to new. That is, it is shorthand for {[] => results}.
|
116
113
|
#
|
117
114
|
def replace_new target_class, results
|
118
115
|
argument_instance_map = results.respond_to?(:to_hash) ? results.to_hash : { [] => results }
|
data/lib/greenbar/DateSetup.rb
CHANGED
@@ -23,7 +23,7 @@ class Date; end
|
|
23
23
|
# ===Usage
|
24
24
|
#
|
25
25
|
# 1. Include Greenbar::DateSetup in your test case.
|
26
|
-
# 2. Use
|
26
|
+
# 2. Use make_Date_today_return to define the date you want to be 'today'
|
27
27
|
#
|
28
28
|
# You may change 'today' as often as you want.
|
29
29
|
#
|
@@ -31,12 +31,6 @@ class Date; end
|
|
31
31
|
#
|
32
32
|
# :include: doc/examples/DateSetup.rb
|
33
33
|
#
|
34
|
-
# ===Additional definitions
|
35
|
-
# Date.today=(date)
|
36
|
-
#
|
37
|
-
# sets the Date to returned as 'today' for Date.today
|
38
|
-
# Must be called before Date.today if DateSetup is being used.
|
39
|
-
#
|
40
34
|
|
41
35
|
module Greenbar::DateSetup
|
42
36
|
include Greenbar::TestSetup
|
@@ -44,19 +38,22 @@ module Greenbar::DateSetup
|
|
44
38
|
|
45
39
|
def setup_mixin #:nodoc:
|
46
40
|
replace_class_method(Date, :today) {
|
47
|
-
raise "Must use
|
41
|
+
raise "Must use make_Date_today_return() when using DateSetup." unless defined? @today
|
48
42
|
@today
|
49
43
|
}
|
50
44
|
|
51
|
-
|
52
|
-
|
53
|
-
|
45
|
+
end
|
46
|
+
|
47
|
+
#
|
48
|
+
# Sets the Date to be returned for Date.today
|
49
|
+
# Must be called before Date.today if DateSetup is being used.
|
50
|
+
#
|
51
|
+
def make_Date_today_return date
|
52
|
+
Date.instance_variable_set '@today', date
|
54
53
|
end
|
55
54
|
|
56
55
|
def teardown_mixin #:nodoc:
|
57
|
-
|
58
|
-
remove_method :today=
|
59
|
-
end
|
56
|
+
Date.instance_eval {remove_instance_variable '@today'} if Date.instance_variables.include?('@today')
|
60
57
|
end
|
61
58
|
|
62
59
|
end
|
data/lib/greenbar/TimeSetup.rb
CHANGED
@@ -22,7 +22,7 @@ class Time; end
|
|
22
22
|
# ===Usage
|
23
23
|
#
|
24
24
|
# 1. Include Greenbar::TimeSetup in your test case.
|
25
|
-
# 2. Use
|
25
|
+
# 2. Use make_Time_now_return to define the time you want to be 'now'
|
26
26
|
#
|
27
27
|
# You may change 'now' as often as you want.
|
28
28
|
#
|
@@ -30,12 +30,6 @@ class Time; end
|
|
30
30
|
#
|
31
31
|
# :include: doc/examples/TimeSetup.rb
|
32
32
|
#
|
33
|
-
# ===Additional definitions
|
34
|
-
# Time.now=(time)
|
35
|
-
#
|
36
|
-
# sets the Time to returned as 'now' for Time.new and Time.now
|
37
|
-
# Must be called before Time.new or Time.now if TimeSetup is being used.
|
38
|
-
#
|
39
33
|
module Greenbar::TimeSetup
|
40
34
|
#:stopdoc:
|
41
35
|
include Greenbar::TestSetup
|
@@ -44,7 +38,7 @@ module Greenbar::TimeSetup
|
|
44
38
|
|
45
39
|
def setup_mixin #:nodoc:
|
46
40
|
replace_class_method(Time, :now) {
|
47
|
-
raise "Must use
|
41
|
+
raise "Must use make_Time_now_return() when using TimeSetup." unless @now
|
48
42
|
@now
|
49
43
|
}
|
50
44
|
|
@@ -52,15 +46,17 @@ module Greenbar::TimeSetup
|
|
52
46
|
Time.now
|
53
47
|
}
|
54
48
|
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
end
|
50
|
+
#
|
51
|
+
# Sets the Time to be returned for time.now
|
52
|
+
# Must be called before Time.new or Time.now if TimeSetup is being used.
|
53
|
+
#
|
54
|
+
def make_Time_now_return time
|
55
|
+
Time.instance_variable_set '@now', time
|
58
56
|
end
|
59
57
|
|
60
58
|
def teardown_mixin #:nodoc:
|
61
|
-
|
62
|
-
remove_method :now=
|
63
|
-
end
|
59
|
+
Time.instance_eval {remove_instance_variable '@now'} if Time.instance_variables.include?('@now')
|
64
60
|
end
|
65
61
|
|
66
62
|
end
|
data/rakefile.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rake/clean'
|
|
4
4
|
require 'rake/testtask'
|
5
5
|
require 'rake/rdoctask'
|
6
6
|
|
7
|
-
GREENBAR_VERSION = '0.
|
7
|
+
GREENBAR_VERSION = '0.2.1'
|
8
8
|
WEB_BUILD="web/build"
|
9
9
|
|
10
10
|
desc "Default Task"
|
@@ -43,15 +43,17 @@ Rake::TestTask.new(:examples) {|unitTest|
|
|
43
43
|
unitTest.verbose = true
|
44
44
|
}
|
45
45
|
|
46
|
+
COMMON_RDOC_OPTIONS = [
|
47
|
+
'--title', '"Greenbar - Aids for Testing with Test::Unit"',
|
48
|
+
'--main', 'README',
|
49
|
+
'--line-numbers', '--inline-source',
|
50
|
+
]
|
51
|
+
|
46
52
|
rdoc = Rake::RDocTask.new("rdoc") {|rdoc|
|
47
53
|
rdoc.rdoc_dir = 'html'
|
48
|
-
rdoc.template = 'jamis'
|
49
|
-
rdoc.
|
50
|
-
rdoc.
|
51
|
-
rdoc.main = 'README'
|
52
|
-
rdoc.rdoc_files.include('README')
|
53
|
-
rdoc.rdoc_files.include('LICENSE')
|
54
|
-
rdoc.rdoc_files.include('lib/**/*.rb', 'doc/**/*.rdoc')
|
54
|
+
rdoc.template = 'jamis.rb'
|
55
|
+
rdoc.options += COMMON_RDOC_OPTIONS
|
56
|
+
rdoc.rdoc_files.include 'README', 'LICENSE', 'lib/**/*.rb', 'doc/**/*.rdoc'
|
55
57
|
}
|
56
58
|
|
57
59
|
FILES_TO_PACKAGE = FileList[
|
@@ -85,10 +87,7 @@ else
|
|
85
87
|
|
86
88
|
spec.has_rdoc = true
|
87
89
|
spec.extra_rdoc_files = rdoc.rdoc_files.reject {|filename| filename =~ /\.rb$/ }.to_a << 'README'
|
88
|
-
spec.rdoc_options
|
89
|
-
'--title' << 'Greenbar - Aids for Testing with Test::Unit' <<
|
90
|
-
'--main' << 'README' <<
|
91
|
-
'--line-numbers' << '--inline-source'
|
90
|
+
spec.rdoc_options + COMMON_RDOC_OPTIONS
|
92
91
|
|
93
92
|
# spec.signing_key = 'gem-private_key.pem'
|
94
93
|
# spec.cert_chain = ['gem-public_cert.pem']
|
data/test/DateSetupTest.rb
CHANGED
@@ -22,18 +22,23 @@ class DateSetupTest < Test::Unit::TestCase
|
|
22
22
|
test = Test.new
|
23
23
|
test.setup
|
24
24
|
|
25
|
-
assert_raise(RuntimeError, 'Expected a RuntimeError if
|
25
|
+
assert_raise(RuntimeError, 'Expected a RuntimeError if make_Date_today_return not called before Date.today') {
|
26
26
|
Date.today
|
27
27
|
}
|
28
28
|
|
29
|
-
|
29
|
+
test.make_Date_today_return july4th2004
|
30
30
|
assert_equal july4th2004, Date.today
|
31
31
|
|
32
32
|
test.teardown
|
33
33
|
|
34
34
|
assert Date.today > july4th2004
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
assert ! Date.instance_variables.include?('@today'), "Date@today should have been removed"
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_when_today_is_not_set
|
39
|
+
test = Test.new
|
40
|
+
test.setup
|
41
|
+
test.teardown
|
38
42
|
end
|
43
|
+
|
39
44
|
end
|
data/test/TimeSetupTest.rb
CHANGED
@@ -30,16 +30,20 @@ class TimeSetupTest < Test::Unit::TestCase
|
|
30
30
|
Time.new
|
31
31
|
}
|
32
32
|
|
33
|
-
|
33
|
+
test.make_Time_now_return july4th2004
|
34
34
|
assert_equal july4th2004, Time.now
|
35
35
|
assert_equal july4th2004, Time.new
|
36
36
|
|
37
37
|
test.teardown
|
38
38
|
assert Time.new > july4th2004
|
39
39
|
assert Time.now > july4th2004
|
40
|
-
|
41
|
-
|
42
|
-
}
|
40
|
+
|
41
|
+
assert ! Time.instance_variables.include?('@now'), "Time@now should have been removed"
|
43
42
|
end
|
44
43
|
|
44
|
+
def test_when_now_is_not_set
|
45
|
+
test = Test.new
|
46
|
+
test.setup
|
47
|
+
test.teardown
|
48
|
+
end
|
45
49
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: greenbar
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2006-04-
|
6
|
+
version: 0.2.1
|
7
|
+
date: 2006-04-28 00:00:00 -04:00
|
8
8
|
summary: Test::Unit tools.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -57,13 +57,8 @@ files:
|
|
57
57
|
- rakefile.rb
|
58
58
|
test_files:
|
59
59
|
- test/allTests.rb
|
60
|
-
rdoc_options:
|
61
|
-
|
62
|
-
- Greenbar - Aids for Testing with Test::Unit
|
63
|
-
- --main
|
64
|
-
- README
|
65
|
-
- --line-numbers
|
66
|
-
- --inline-source
|
60
|
+
rdoc_options: []
|
61
|
+
|
67
62
|
extra_rdoc_files:
|
68
63
|
- README
|
69
64
|
- LICENSE
|