versionomy 0.4.1 → 0.4.2

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.
@@ -1,17 +1,17 @@
1
1
  # -----------------------------------------------------------------------------
2
- #
2
+ #
3
3
  # Versionomy tests on rubygems schema conversions
4
- #
4
+ #
5
5
  # This file contains tests converting to and from the rubygems schema
6
- #
6
+ #
7
7
  # -----------------------------------------------------------------------------
8
8
  # Copyright 2008-2009 Daniel Azuma
9
- #
9
+ #
10
10
  # All rights reserved.
11
- #
11
+ #
12
12
  # Redistribution and use in source and binary forms, with or without
13
13
  # modification, are permitted provided that the following conditions are met:
14
- #
14
+ #
15
15
  # * Redistributions of source code must retain the above copyright notice,
16
16
  # this list of conditions and the following disclaimer.
17
17
  # * Redistributions in binary form must reproduce the above copyright notice,
@@ -20,7 +20,7 @@
20
20
  # * Neither the name of the copyright holder, nor the names of any other
21
21
  # contributors to this software, may be used to endorse or promote products
22
22
  # derived from this software without specific prior written permission.
23
- #
23
+ #
24
24
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
25
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
26
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -41,18 +41,18 @@ require 'versionomy'
41
41
 
42
42
  module Versionomy
43
43
  module Tests # :nodoc:
44
-
44
+
45
45
  class TestRubygemsConversions < ::Test::Unit::TestCase # :nodoc:
46
-
47
-
46
+
47
+
48
48
  def setup
49
49
  @standard_format = Format.get(:standard)
50
50
  @rubygems_format = Format.get(:rubygems)
51
51
  end
52
-
53
-
52
+
53
+
54
54
  # Test simple conversion from standard to rubygems.
55
-
55
+
56
56
  def test_standard_to_rubygems_simple
57
57
  value_ = ::Versionomy.parse('1.2')
58
58
  value2_ = value_.convert(:rubygems)
@@ -63,10 +63,10 @@ module Versionomy
63
63
  assert_equal(@rubygems_format, value2_.format)
64
64
  assert_equal([1, 2, 4, 1, 0, 0, 0, 0], value2_.values_array)
65
65
  end
66
-
67
-
66
+
67
+
68
68
  # Test conversion from standard to rubygems including a patchlevel
69
-
69
+
70
70
  def test_standard_to_rubygems_with_patchlevel
71
71
  value_ = ::Versionomy.parse('1.2-3')
72
72
  value2_ = value_.convert(:rubygems)
@@ -78,10 +78,10 @@ module Versionomy
78
78
  value2_ = value_.convert(:rubygems)
79
79
  assert_equal([1, 2, 3, 0, 0, 0, 0, 0], value2_.values_array)
80
80
  end
81
-
82
-
81
+
82
+
83
83
  # Test conversion from standard to rubygems with a beta version
84
-
84
+
85
85
  def test_standard_to_rubygems_beta
86
86
  value_ = ::Versionomy.parse('1.2b3')
87
87
  value2_ = value_.convert(:rubygems)
@@ -90,10 +90,10 @@ module Versionomy
90
90
  value2_ = value_.convert(:rubygems)
91
91
  assert_equal([1, 2, 'beta', 3, 4, 0, 0, 0], value2_.values_array)
92
92
  end
93
-
94
-
93
+
94
+
95
95
  # Test conversion from standard to rubygems with a "v" prefix
96
-
96
+
97
97
  def test_standard_to_rubygems_with_v
98
98
  value_ = ::Versionomy.parse('v1.2b3')
99
99
  value2_ = value_.convert(:rubygems)
@@ -102,10 +102,10 @@ module Versionomy
102
102
  value2_ = value_.convert(:rubygems)
103
103
  assert_equal([1, 2, 'b', 3, 0, 0, 0, 0], value2_.values_array)
104
104
  end
105
-
106
-
105
+
106
+
107
107
  # Test simple conversion from rubygems to standard.
108
-
108
+
109
109
  def test_rubygems_to_standard_simple
110
110
  value_ = ::Versionomy.parse('1.2', :rubygems)
111
111
  value2_ = value_.convert(:standard)
@@ -116,10 +116,10 @@ module Versionomy
116
116
  assert_equal(@standard_format, value2_.format)
117
117
  assert_equal([1, 2, 4, 1, :final, 0, 0], value2_.values_array)
118
118
  end
119
-
120
-
119
+
120
+
121
121
  # Test conversion from rubygems to standard with a beta version
122
-
122
+
123
123
  def test_rubygems_to_standard_beta
124
124
  value_ = ::Versionomy.parse('1.2.b.3', :rubygems)
125
125
  value2_ = value_.convert(:standard)
@@ -134,10 +134,10 @@ module Versionomy
134
134
  value2_ = value_.convert(:standard)
135
135
  assert_equal([1, 2, 0, 0, :beta, 0, 0], value2_.values_array)
136
136
  end
137
-
138
-
137
+
138
+
139
139
  # Test conversion from rubygems to standard with an expectation of failure
140
-
140
+
141
141
  def test_rubygems_to_standard_fail
142
142
  value_ = ::Versionomy.parse('1.2.b.3.4.5', :rubygems)
143
143
  assert_raise(::Versionomy::Errors::ConversionError) do
@@ -148,43 +148,43 @@ module Versionomy
148
148
  value2_ = value_.convert(:standard)
149
149
  end
150
150
  end
151
-
152
-
151
+
152
+
153
153
  # Test equality comparisons between rubygems and standard
154
-
154
+
155
155
  def test_rubygems_to_standard_equality_comparison
156
156
  assert_operator(::Versionomy.parse('1.2.0', :rubygems), :==, ::Versionomy.parse('1.2'))
157
157
  assert_operator(::Versionomy.parse('1.2.b.3', :rubygems), :==, ::Versionomy.parse('1.2b3'))
158
158
  end
159
-
160
-
159
+
160
+
161
161
  # Test inequality comparisons between rubygems and standard
162
-
162
+
163
163
  def test_rubygems_to_standard_inequality_comparison
164
164
  assert_operator(::Versionomy.parse('1.2.3', :rubygems), :<, ::Versionomy.parse('1.2.4'))
165
165
  assert_operator(::Versionomy.parse('1.2.b.3', :rubygems), :>, ::Versionomy.parse('1.2b2'))
166
166
  assert_operator(::Versionomy.parse('1.2', :rubygems), :>, ::Versionomy.parse('1.2b1'))
167
167
  end
168
-
169
-
168
+
169
+
170
170
  # Test equality comparisons between standard and rubygems
171
-
171
+
172
172
  def test_standard_to_rubygems_equality_comparison
173
173
  assert_operator(::Versionomy.parse('1.2.0'), :==, ::Versionomy.parse('1.2', :rubygems))
174
174
  assert_operator(::Versionomy.parse('1.2b3'), :==, ::Versionomy.parse('1.2.beta.3', :rubygems))
175
175
  end
176
-
177
-
176
+
177
+
178
178
  # Test inequality comparisons between standard and rubygems
179
-
179
+
180
180
  def test_standard_to_rubygems_inequality_comparison
181
181
  assert_operator(::Versionomy.parse('1.2.4'), :>, ::Versionomy.parse('1.2.3', :rubygems))
182
182
  assert_operator(::Versionomy.parse('1.2b2'), :<, ::Versionomy.parse('1.2.beta.3', :rubygems))
183
183
  assert_operator(::Versionomy.parse('1.2b2'), :<, ::Versionomy.parse('1.2', :rubygems))
184
184
  end
185
-
186
-
185
+
186
+
187
187
  end
188
-
188
+
189
189
  end
190
190
  end
@@ -1,17 +1,17 @@
1
1
  # -----------------------------------------------------------------------------
2
- #
2
+ #
3
3
  # Versionomy basic tests on rubygems schema
4
- #
4
+ #
5
5
  # This file contains tests for the basic use cases on the rubygems schema
6
- #
6
+ #
7
7
  # -----------------------------------------------------------------------------
8
8
  # Copyright 2008-2009 Daniel Azuma
9
- #
9
+ #
10
10
  # All rights reserved.
11
- #
11
+ #
12
12
  # Redistribution and use in source and binary forms, with or without
13
13
  # modification, are permitted provided that the following conditions are met:
14
- #
14
+ #
15
15
  # * Redistributions of source code must retain the above copyright notice,
16
16
  # this list of conditions and the following disclaimer.
17
17
  # * Redistributions in binary form must reproduce the above copyright notice,
@@ -20,7 +20,7 @@
20
20
  # * Neither the name of the copyright holder, nor the names of any other
21
21
  # contributors to this software, may be used to endorse or promote products
22
22
  # derived from this software without specific prior written permission.
23
- #
23
+ #
24
24
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
25
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
26
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -41,12 +41,12 @@ require 'versionomy'
41
41
 
42
42
  module Versionomy
43
43
  module Tests # :nodoc:
44
-
44
+
45
45
  class TestSemverBasic < ::Test::Unit::TestCase # :nodoc:
46
-
47
-
46
+
47
+
48
48
  # Test the default version value.
49
-
49
+
50
50
  def test_default_value
51
51
  value_ = ::Versionomy.create(nil, :semver)
52
52
  assert_equal(1, value_.major)
@@ -54,10 +54,10 @@ module Versionomy
54
54
  assert_equal(0, value_.patch)
55
55
  assert_equal('', value_.prerelease_suffix)
56
56
  end
57
-
58
-
57
+
58
+
59
59
  # Test an arbitrary value.
60
-
60
+
61
61
  def test_arbitrary_value
62
62
  value_ = ::Versionomy.create([1, 9, 2, 'pre2'], :semver)
63
63
  assert_equal(1, value_.major)
@@ -65,26 +65,26 @@ module Versionomy
65
65
  assert_equal(2, value_.patch)
66
66
  assert_equal('pre2', value_.prerelease_suffix)
67
67
  end
68
-
69
-
68
+
69
+
70
70
  # Test aliases
71
-
71
+
72
72
  def test_alias_fields
73
73
  value_ = ::Versionomy.create([1, 9, 2, 'pre2'], :semver)
74
74
  assert_equal('pre2', value_.special_suffix)
75
75
  end
76
-
77
-
76
+
77
+
78
78
  # Test construction using aliases
79
-
79
+
80
80
  def test_alias_field_construction
81
81
  value_ = ::Versionomy.create({:major => 1, :minor => 9, :special_suffix => 'pre2'}, :semver)
82
82
  assert_equal([1, 9, 0, 'pre2'], value_.values_array)
83
83
  end
84
-
85
-
84
+
85
+
86
86
  # Test comparison of numeric values.
87
-
87
+
88
88
  def test_numeric_comparison
89
89
  value1_ = ::Versionomy.create([1, 9, 2], :semver)
90
90
  value2_ = ::Versionomy.create([1, 9], :semver)
@@ -93,46 +93,46 @@ module Versionomy
93
93
  value2_ = ::Versionomy.create([1, 9], :semver)
94
94
  assert(value2_ == value1_)
95
95
  end
96
-
97
-
96
+
97
+
98
98
  # Test comparison of string values.
99
-
99
+
100
100
  def test_string_comparison
101
101
  value1_ = ::Versionomy.create([1, 9, 2, 'a2'], :semver)
102
102
  value2_ = ::Versionomy.create([1, 9, 2, 'b1'], :semver)
103
103
  assert(value2_ > value1_)
104
104
  end
105
-
106
-
105
+
106
+
107
107
  # Test comparison of numeric and string values.
108
-
108
+
109
109
  def test_numeric_and_string_comparison
110
110
  value1_ = ::Versionomy.create([1, 9, 2, 'a2'], :semver)
111
111
  value2_ = ::Versionomy.create([1, 9, 2], :semver)
112
112
  assert(value2_ > value1_)
113
113
  end
114
-
115
-
114
+
115
+
116
116
  # Test parsing numeric.
117
-
117
+
118
118
  def test_parsing_numeric
119
119
  value_ = ::Versionomy.parse('2.0.1', :semver)
120
120
  assert_equal([2, 0, 1, ''], value_.values_array)
121
121
  assert_equal('2.0.1', value_.unparse)
122
122
  end
123
-
124
-
123
+
124
+
125
125
  # Test parsing with a string.
126
-
126
+
127
127
  def test_parsing_with_string
128
128
  value_ = ::Versionomy.parse('1.9.2pre2', :semver)
129
129
  assert_equal([1, 9, 2, 'pre2'], value_.values_array)
130
130
  assert_equal('1.9.2pre2', value_.unparse)
131
131
  end
132
-
133
-
132
+
133
+
134
134
  # Test making sure unparsing requires all three fields.
135
-
135
+
136
136
  def test_parsing_require_all_fields
137
137
  value_ = ::Versionomy.parse('2.0', :semver)
138
138
  assert_equal([2, 0, 0, ''], value_.values_array)
@@ -141,73 +141,73 @@ module Versionomy
141
141
  value_ = ::Versionomy.parse('2.0b1', :semver)
142
142
  end
143
143
  end
144
-
145
-
144
+
145
+
146
146
  # Test convenience parsing
147
-
147
+
148
148
  def test_convenience_parse
149
149
  value_ = ::Versionomy.semver('2.0.1')
150
150
  assert_equal([2, 0, 1, ''], value_.values_array)
151
151
  end
152
-
153
-
152
+
153
+
154
154
  # Test convenience creation from hash
155
-
155
+
156
156
  def test_convenience_create
157
157
  value_ = ::Versionomy.semver(:major => 2, :patch => 1, :prerelease_suffix => 'b2')
158
158
  assert_equal([2, 0, 1, 'b2'], value_.values_array)
159
159
  end
160
-
161
-
160
+
161
+
162
162
  # Test bumping a numeric field.
163
-
163
+
164
164
  def test_bump_numeric
165
165
  value_ = ::Versionomy.create([1, 9, 2, 'a2'], :semver)
166
166
  value_ = value_.bump(:patch)
167
167
  assert_equal([1, 9, 3, ''], value_.values_array)
168
168
  end
169
-
170
-
169
+
170
+
171
171
  # Test bumping a string field.
172
-
172
+
173
173
  def test_bump_string
174
174
  value_ = ::Versionomy.create([1, 9, 2, 'a2'], :semver)
175
175
  value_ = value_.bump(:prerelease_suffix)
176
176
  assert_equal([1, 9, 2, 'a3'], value_.values_array)
177
177
  end
178
-
179
-
178
+
179
+
180
180
  # Test "prerelase?" custom method
181
-
181
+
182
182
  def test_method_prereleasep
183
183
  value_ = ::Versionomy.create([1, 9, 2, 'a2'], :semver)
184
184
  assert_equal(true, value_.prerelease?)
185
185
  value_ = ::Versionomy.create([1, 9, 2], :semver)
186
186
  assert_equal(false, value_.prerelease?)
187
187
  end
188
-
189
-
188
+
189
+
190
190
  # Test marshalling
191
-
191
+
192
192
  def test_marshal
193
193
  value_ = ::Versionomy.create([1, 9, 2, 'pre2'], :semver)
194
194
  str_ = ::Marshal.dump(value_)
195
195
  value2_ = ::Marshal.load(str_)
196
196
  assert_equal(value_, value2_)
197
197
  end
198
-
199
-
198
+
199
+
200
200
  # Test YAML
201
-
201
+
202
202
  def test_yaml
203
203
  value_ = ::Versionomy.create([1, 9, 2, 'pre2'], :semver)
204
204
  str_ = ::YAML.dump(value_)
205
205
  value2_ = ::YAML.load(str_)
206
206
  assert_equal(value_, value2_)
207
207
  end
208
-
209
-
208
+
209
+
210
210
  end
211
-
211
+
212
212
  end
213
213
  end