Christoph Thiede uploaded a new version of VersionNumberTests to project The Trunk: http://source.squeak.org/trunk/VersionNumberTests-ct.5.mcz
==================== Summary ====================
Name: VersionNumberTests-ct.5 Author: ct Time: 31 January 2022, 8:45:40.499214 pm UUID: af22c47a-3ca5-e340-8598-026eb9f9c6d5 Ancestors: VersionNumberTests-fbs.4
Complements SUnit-ct.130 (deprecation of TestResult error) and SUnit-ct.138 (new convenience #shouldRaiseError:).
=============== Diff against VersionNumberTests-fbs.4 ===============
Item was changed: ----- Method: VersionNumberTest>>testAsVersion (in category 'Tests') ----- testAsVersion "note: a version number string '3 2 1' will only consider the first number as a version, ignoring the trailing '2 1'. Whether it is a desired feature or not should be determined." | numbers | numbers := { '' -> #(). '1 '-> #(1). '1.2' -> #(1 2). '3.4.5' -> #(3 4 5). '6.7.890' -> #(6 7 890). '9 8' -> #(9). '98 7 6' -> #(98). '54.3 2 1' -> #(54 3) }. numbers do: [:item | | version | version := (item key) asVersion. self assert: (VersionNumber = version class). self assert: ((item value) = version numbers). ].
self assert: 9999999999999999999 equals: '9999999999999999999' asVersion numbers first. + self shouldRaiseError: ['-1' asVersion]. + self shouldRaiseError: [' 1' asVersion]. "notice leading space!!" + self shouldRaiseError: ['version' asVersion]. + self shouldRaiseError: ['1.2.10.20.-1.4' asVersion]. + self shouldRaiseError: ['1.2.10.20.R4' asVersion].! - self should: ['-1' asVersion] raise: TestResult error. - self should: [' 1' asVersion] raise: TestResult error. "notice leading space!!" - self should: ['version' asVersion] raise: TestResult error. - self should: ['1.2.10.20.-1.4' asVersion] raise: TestResult error. - self should: ['1.2.10.20.R4' asVersion] raise: TestResult error.!
Item was changed: ----- Method: VersionNumberTest>>testFromCollection (in category 'Tests') ----- testFromCollection | numbers | numbers := #(#(1) #(1 2) #(3 4 5) #(6 7 890)). numbers do: [:item | | version | version := VersionNumber fromCollection: item. self assert: (VersionNumber = version class). self assert: (item = version numbers). ].
self assert: #() equals: (VersionNumber fromCollection: #()) numbers. self assert: #(9999999999999999999) equals: (VersionNumber fromCollection: #(9999999999999999999)) numbers. + self shouldRaiseError: [VersionNumber fromCollection: #(0)]. + self shouldRaiseError: [VersionNumber fromCollection: #(-1)]. + self shouldRaiseError: [VersionNumber fromCollection: #(1 2 10 20 -1 4)]. + self shouldRaiseError: [VersionNumber fromCollection: #(1 2 10 20 '1' 4)]. + self shouldRaiseError: [VersionNumber fromCollection: #('version')].! - self should: [VersionNumber fromCollection: #(0)] raise: TestResult error. - self should: [VersionNumber fromCollection: #(-1)] raise: TestResult error. - self should: [VersionNumber fromCollection: #(1 2 10 20 -1 4)] raise: TestResult error. - self should: [VersionNumber fromCollection: #(1 2 10 20 '1' 4)] raise: TestResult error. - self should: [VersionNumber fromCollection: #('version')] raise: TestResult error. - !
Item was changed: ----- Method: VersionNumberTest>>testFromString (in category 'Tests') ----- testFromString "note: a version number string '3 2 1' will only consider the first number as a version, ignoring the trailing '2 1'. Whether it is a desired feature or not should be determined." | numbers | numbers := { '' -> #(). '1 '-> #(1). '1.2' -> #(1 2). '3.4.5' -> #(3 4 5). '6.7.890' -> #(6 7 890). '9 8' -> #(9). '98 7 6' -> #(98). '54.3 2 1' -> #(54 3) }. numbers do: [:item | | version | version := VersionNumber fromString: (item key). self assert: (VersionNumber = version class). self assert: ((item value) = version numbers). ].
self assert: #(9999999999999999999) equals: (VersionNumber fromString: '9999999999999999999') numbers. + self shouldRaiseError: [VersionNumber fromString: '-1']. + self shouldRaiseError: [VersionNumber fromString: ' 1']. "notice leading space!!" + self shouldRaiseError: [VersionNumber fromString: 'version']. + self shouldRaiseError: [VersionNumber fromString: '1.2.10.20.-1.4']. + self shouldRaiseError: [VersionNumber fromString: '1.2.10.20.R4'].! - self should: [VersionNumber fromString: '-1'] raise: TestResult error. - self should: [VersionNumber fromString: ' 1'] raise: TestResult error. "notice leading space!!" - self should: [VersionNumber fromString: 'version'] raise: TestResult error. - self should: [VersionNumber fromString: '1.2.10.20.-1.4'] raise: TestResult error. - self should: [VersionNumber fromString: '1.2.10.20.R4'] raise: TestResult error. - !
Item was changed: ----- Method: VersionNumberTest>>testInitializeNumbers (in category 'Tests') ----- testInitializeNumbers | numbers | numbers := #(#(1) #(1 2) #(3 4 5) #(6 7 890)). numbers do: [:item | | version | version := VersionNumber new initializeNumbers: item. self assert: (VersionNumber = version class). self assert: (item = version numbers). ].
self assert: #() equals: (VersionNumber new initializeNumbers: #()) numbers. self assert: #(9999999999999999999) equals: (VersionNumber new initializeNumbers: #(9999999999999999999)) numbers. + self shouldRaiseError: [VersionNumber new initializeNumbers: #(0)]. + self shouldRaiseError: [VersionNumber new initializeNumbers: #(-1)]. + self shouldRaiseError: [VersionNumber new initializeNumbers: #(1 2 10 20 -1 4)]. + self shouldRaiseError: [VersionNumber new initializeNumbers: #(1 2 10 20 '1' 4)]. + self shouldRaiseError: [VersionNumber new initializeNumbers: #('version')].! - self should: [VersionNumber new initializeNumbers: #(0)] raise: TestResult error. - self should: [VersionNumber new initializeNumbers: #(-1)] raise: TestResult error. - self should: [VersionNumber new initializeNumbers: #(1 2 10 20 -1 4)] raise: TestResult error. - self should: [VersionNumber new initializeNumbers: #(1 2 10 20 '1' 4)] raise: TestResult error. - self should: [VersionNumber new initializeNumbers: #('version')] raise: TestResult error. - !
packages@lists.squeakfoundation.org