Skip to content

Instantly share code, notes, and snippets.

@endy-s
Created May 23, 2019 18:35
Show Gist options
  • Save endy-s/7cacaa730bf9fd5abf6021e58e962191 to your computer and use it in GitHub Desktop.
Save endy-s/7cacaa730bf9fd5abf6021e58e962191 to your computer and use it in GitHub Desktop.
Tests for the String extension to compare string versions
class StringTests: XCTestCase {
func testParseVersions() {
XCTAssertTrue("2.2.100-alpha".getRawVersionString()?.isVersion(lessThan:
"v2.3.2".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.2.13".getRawVersionString()?.isVersion(lessThan:
"v2.4.16-37-geea723b-merck-blackhawk".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.4.21-alpha".getRawVersionString()?.isVersion(lessThan:
"v2.4.22-103-g2f56154-trunk".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.5.1-53-gded80545-dirty-jacob-uglydb".getRawVersionString()?.isVersion(lessThan:
"v2.5.6-alpha".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.5.6-alpha".getRawVersionString()?.isVersion(equalTo:
"v2.5.6-beta".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.5.9-12-gbab374f-brad-trigger-hw-test".getRawVersionString()?.isVersion(lessThan:
"v2.6.10-alpha".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.10-alpha".getRawVersionString()?.isVersion(equalTo:
"v2.6.10-beta".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.10-beta".getRawVersionString()?.isVersion(lessThan:
"v2.6.12-1-gf1eaeee-alpha".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.12-3-gde72d3db-trunk".getRawVersionString()?.isVersion(equalTo:
"v2.6.12-beta".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.3".getRawVersionString()?.isVersion(lessThan:
"v2.6.5-trunk".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.7-beta".getRawVersionString()?.isVersion(equalTo:
"v2.6.7-dirty-a759b3e9".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.8-alpha".getRawVersionString()?.isVersion(lessThan:
"v2.6.9-3-g313942c-jacob-rehashes".getRawVersionString() ?? "0") ?? false)
XCTAssertTrue("v2.6.9-alpha".getRawVersionString()?.isVersion(lessThan:
"2.6.10".getRawVersionString() ?? "0") ?? false)
}
func testStringVersionExtension() {
// Test cases created by DragonChery - https://stackoverflow.com/a/44361022/7806488
XCTAssertTrue(UIDevice.current.systemVersion.isVersion(lessThan: "99.0.0"))
XCTAssertTrue(UIDevice.current.systemVersion.isVersion(equalTo: UIDevice.current.systemVersion))
XCTAssertTrue(UIDevice.current.systemVersion.isVersion(greaterThan: "3.5.99"))
XCTAssertTrue(UIDevice.current.systemVersion.isVersion(lessThanOrEqualTo: "13.5.99"))
XCTAssertTrue(UIDevice.current.systemVersion.isVersion(greaterThanOrEqualTo: UIDevice.current.systemVersion))
XCTAssertTrue("0.1.1".isVersion(greaterThan: "0.1"))
XCTAssertTrue("0.1.0".isVersion(equalTo: "0.1"))
XCTAssertTrue("10.0.0".isVersion(equalTo: "10"))
XCTAssertTrue("10.0.1".isVersion(equalTo: "10.0.1"))
XCTAssertTrue("5.10.10".isVersion(lessThan: "5.11.5"))
XCTAssertTrue("1.0.0".isVersion(greaterThan: "0.99.100"))
XCTAssertTrue("0.5.3".isVersion(lessThanOrEqualTo: "1.0.0"))
XCTAssertTrue("0.5.29".isVersion(greaterThanOrEqualTo: "0.5.3"))
// Test cases created by Endy after improving the extension
XCTAssertTrue("10.0.1.2".isVersion(equalTo: "10.0.1.2"))
XCTAssertTrue("5.10.10.1.3".isVersion(lessThan: "5.11.5"))
XCTAssertTrue("1.0.0.9".isVersion(greaterThan: "0.99.100"))
XCTAssertTrue("0.5.3.99".isVersion(lessThanOrEqualTo: "1.0.0"))
XCTAssertTrue("0.5.29.1".isVersion(greaterThanOrEqualTo: "0.5.3"))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment