MetacelloVersionNumberTestCase.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 05 Sep 2012 16:35:54 +0000
changeset 7 759ff40b4754
parent 1 9e312de5f694
permissions -rw-r--r--
- stx_goodies_metacello_stx added: #extensionMethodNames changed: #classNamesAndAttributes #preRequisites
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     1
"{ Package: 'stx:goodies/metacello' }"
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     2
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     3
MetacelloCommonVersionNumberTestCase subclass:#MetacelloVersionNumberTestCase
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     4
	instanceVariableNames:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     5
	classVariableNames:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     6
	poolDictionaries:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     7
	category:'Metacello-TestsCore'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     8
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     9
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    10
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    11
!MetacelloVersionNumberTestCase methodsFor:'private'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    12
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    13
versionClass
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    14
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    15
	^MetacelloVersionNumber
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    16
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    17
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    18
!MetacelloVersionNumberTestCase methodsFor:'test approximately greater than'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    19
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    20
testApproxVersion01
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    21
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    22
	self assert: '1.1.1' asMetacelloVersionNumber ~> '1.1' asMetacelloVersionNumber
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    23
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    24
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    25
testApproxVersion02
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    26
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    27
	self deny: '1.1' asMetacelloVersionNumber ~> '1' asMetacelloVersionNumber
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    28
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    29
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    30
testApproxVersion03
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    31
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    32
	self assert: '1.1' asMetacelloVersionNumber ~> '1.1' asMetacelloVersionNumber
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    33
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    34
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    35
!MetacelloVersionNumberTestCase methodsFor:'test matching'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    36
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    37
testInvalidSpecialMatch
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    38
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    39
	self 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    40
		should: [ ((self versionClass fromString: '1.1') match: '?.?') ]
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    41
		raise: Error.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    42
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    43
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    44
testSpecialMatch
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    45
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    46
	self assert: ((self versionClass fromString: '1.1') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    47
	self assert: ((self versionClass fromString: 'alpha') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    48
	self assert: ((self versionClass fromString: '1.1.1.1.1') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    49
	self assert: ((self versionClass fromString: '1.alpha5') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    50
	self assert: ((self versionClass fromString: '1.1') match: '*.?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    51
	self assert: ((self versionClass fromString: '1.1') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    52
	self assert: ((self versionClass fromString: '10.1.1.1.1') match: '?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    53
	self deny: ((self versionClass fromString: '1.1') match: '*.*.?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    54
	self assert: ((self versionClass fromString: '1.1.1') match: '*.?').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    55
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    56
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    57
testStandardMatch
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    58
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    59
	self assert: ((self versionClass fromString: '1.1.1') match: '*.*.*').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    60
	self deny: ((self versionClass fromString: '1.1.1') match: '*.*').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    61
	self assert: ((self versionClass fromString: '1.1.0') match: '1.1.*').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    62
	self assert: ((self versionClass fromString: '1.1.0') match: '1.#.*').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    63
	self deny: ((self versionClass fromString: '1.10.0') match: '1.#.*').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    64
	self assert: ((self versionClass fromString: '1-alpha5.0') match: '1-alpha#.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    65
	self assert: ((self versionClass fromString: '1.alpha5.0') match: '1-alpha#.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    66
	self assert: ((self versionClass fromString: '1.alpha5.0') match: '1.alpha#.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    67
	self deny: ((self versionClass fromString: '1-alpha10.0') match: '1-alpha#.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    68
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    69
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    70
!MetacelloVersionNumberTestCase methodsFor:'tests'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    71
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    72
testCollapseZeros
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    73
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    74
	self assert: (MetacelloVersionNumber fromString: '1.0-beta.24.0.1') collapseZeros printString = '1-beta.24.0.1'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    75
	self assert: (MetacelloVersionNumber fromString: '1.0-beta.24.0.0.1') collapseZeros printString = '1-beta.24.0.0.1'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    76
	self assert: (MetacelloVersionNumber fromString: '1.0.0-beta.24.0.0.1') collapseZeros printString = '1-beta.24.0.0.1'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    77
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    78
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    79
testVersion03
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    80
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    81
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    82
	v1 := self versionClass fromString: '1.0.0.1'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    83
	v2 := self versionClass fromString: '1.0.0'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    84
	self assert: (v1 > v2)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    85
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    86
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    87
testVersion05
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    88
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    89
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    90
	v1 := self versionClass fromString: '3'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    91
	v2 := self versionClass fromString: '2'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    92
	self assert: (v1 > v2)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    93
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    94
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    95
testVersion06
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    96
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    97
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    98
	v1 := self versionClass fromString: '3.'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    99
	v2 := self versionClass fromString: '2'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   100
	self assert: (v1 > v2)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   101
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   102
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   103
testVersion07
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   104
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   105
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   106
	v1 := self versionClass fromString: '3.0.0'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   107
	v2 := self versionClass fromString: '2'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   108
	self assert: (v1 > v2)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   109
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   110
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   111
testVersion08
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   112
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   113
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   114
	v1 := self versionClass fromString: '1.0a6'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   115
	v2 := self versionClass fromString: '1.0a5'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   116
	self assert: (v1 > v2)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   117
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   118
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   119
testVersion09
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   120
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   121
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   122
	v1 := self versionClass fromString: '1.0'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   123
	v2 := self versionClass fromString: '0.7'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   124
	self assert: (v1 >= v2).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   125
	self assert: (v2 <= v1)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   126
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   127
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   128
testVersion10
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   129
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   130
	| x y |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   131
	self assert: ((x := (({
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   132
		self versionClass fromString: '1.0'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   133
		self versionClass fromString: '0.7'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   134
		self versionClass fromString: '0.8'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   135
		self versionClass fromString: '0.9'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   136
		self versionClass fromString: '1.0.1'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   137
	} sort: [:a :b | a <= b ]) collect: [:each | each versionString ]) asArray) = (y := #( '0.7' '0.8' '0.9' '1.0' '1.0.1')))
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   138
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   139
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   140
testVersion11
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   141
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   142
	| v1 v2 |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   143
	v1 := self versionClass fromString: '1.0.1b'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   144
	v2 := self versionClass fromString: '1.0.1a'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   145
	self assert: (v1 >= v2).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   146
	self assert: (v2 <= v1)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   147
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   148
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   149
testVersion12
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   150
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   151
	self deny: ((self versionClass fromString: '1.0') <= (self versionClass fromString: '0.7'))
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   152
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   153
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   154
testVersion13
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   155
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   156
	self deny: ((self versionClass fromString: '0.8') <= (self versionClass fromString: '0.7')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   157
	self deny: ((self versionClass fromString: '0.8.1.8') <= (self versionClass fromString: '0.7.0.5')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   158
	
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   159
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   160
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   161
testVersion15
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   162
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   163
	self assert: ((self versionClass fromString: '1.0-beta.0') < (self versionClass fromString: '1.0-beta.1')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   164
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   165
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   166
testVersion16
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   167
    self assert: (self versionClass fromString: '1.0-beta.0') < (self versionClass fromString: '1.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   168
    self assert: (self versionClass fromString: '1.0-beta.0') < (self versionClass fromString: '1.0.0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   169
    self assert: (self versionClass fromString: '1.0-beta.0') < (self versionClass fromString: '1.0.0.0')
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   170
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   171
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   172
testVersion17
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   173
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   174
	self assert: ((self versionClass fromString: '1.0') = (self versionClass fromString: '1.0.0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   175
	self assert: ((self versionClass fromString: '1') = (self versionClass fromString: '1.0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   176
	self assert: ((self versionClass fromString: '1') > (self versionClass fromString: '1-0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   177
	self assert: ((self versionClass fromString: '1') > (self versionClass fromString: '1.0-beta.0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   178
	self assert: ((self versionClass fromString: '1') > (self versionClass fromString: '1-beta.0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   179
	self assert: ((self versionClass fromString: '1') > (self versionClass fromString: '1-beta')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   180
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   181
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   182
testVersion18
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   183
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   184
	self deny: ((self versionClass fromString: '1.0') < (self versionClass fromString: '1')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   185
	self deny: ((self versionClass fromString: '1.0') < (self versionClass fromString: '1-0')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   186
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   187
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   188
testVersion19
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   189
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   190
	self assert: ((self versionClass fromString: '1.0-beta.0') < (self versionClass fromString: '1')).
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   191
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   192
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   193
testVersion20
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   194
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   195
	self assert: (MetacelloVersionNumber fromString: '') printString = ''.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   196
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   197
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   198
testVersion21
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   199
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   200
	self deny: (MetacelloVersionNumber fromString: '') > (MetacelloVersionNumber fromString: '0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   201
	self assert: (MetacelloVersionNumber fromString: '') < (MetacelloVersionNumber fromString: '0').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   202
	self assert: (MetacelloVersionNumber fromString: '') = (MetacelloVersionNumber fromString: '').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   203
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   204
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   205
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   206
testVersion24
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   207
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   208
	self assert: (MetacelloVersionNumber fromString: '3.0.3.-rc.1') ~= (MetacelloVersionNumber fromString: '3.0.0.3-rc.1').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   209
	self assert: (MetacelloVersionNumber fromString: '1.0.0.1.0.0') = (MetacelloVersionNumber fromString: '1.0.0.1').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   210
	self assert: (MetacelloVersionNumber fromString: '1.0.0.1') ~= (MetacelloVersionNumber fromString: '1..1').
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   211
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   212
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   213
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   214
!MetacelloVersionNumberTestCase class methodsFor:'documentation'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   215
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   216
version_SVN
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   217
    ^ '$Id::                                                                                                                        $'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   218
! !