Files
Morgan Pretty c4aadaff1c Fixed the broken tests and updated test dependencies
Properly fixed the busted migration issue
Updated to the latest version of Quick and Nimble (unit testing libraries)
Updated the tests based on the above
2023-09-22 14:49:39 +10:00

122 lines
5.4 KiB
Swift

// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import Quick
import Nimble
@testable import SessionUtilitiesKit
class VersionSpec: QuickSpec {
override class func spec() {
// MARK: - a Version
describe("a Version") {
// MARK: -- can be created from a string
it("can be created from a string") {
let version: Version = Version.from("1.20.3")
expect(version.major).to(equal(1))
expect(version.minor).to(equal(20))
expect(version.patch).to(equal(3))
}
// MARK: -- correctly exposes a string value
it("correctly exposes a string value") {
let version: Version = Version(major: 1, minor: 20, patch: 3)
expect(version.stringValue).to(equal("1.20.3"))
}
// MARK: -- when checking equality
context("when checking equality") {
// MARK: ---- returns true if the values match
it("returns true if the values match") {
let version1: Version = Version.from("1.0.0")
let version2: Version = Version.from("1.0.0")
expect(version1 == version2)
.to(beTrue())
}
// MARK: ---- returns false if the values do not match
it("returns false if the values do not match") {
let version1: Version = Version.from("1.0.0")
let version2: Version = Version.from("1.0.1")
expect(version1 == version2)
.to(beFalse())
}
}
// MARK: -- when comparing versions
context("when comparing versions") {
// MARK: ---- returns correctly for a simple major difference
it("returns correctly for a simple major difference") {
let version1: Version = Version.from("1.0.0")
let version2: Version = Version.from("2.0.0")
expect(version1 < version2).to(beTrue())
expect(version2 > version1).to(beTrue())
}
// MARK: ---- returns correctly for a complex major difference
it("returns correctly for a complex major difference") {
let version1a: Version = Version.from("2.90.90")
let version2a: Version = Version.from("10.0.0")
let version1b: Version = Version.from("0.7.2")
let version2b: Version = Version.from("5.0.2")
expect(version1a < version2a).to(beTrue())
expect(version2a > version1a).to(beTrue())
expect(version1b < version2b).to(beTrue())
expect(version2b > version1b).to(beTrue())
}
// MARK: ---- returns correctly for a simple minor difference
it("returns correctly for a simple minor difference") {
let version1: Version = Version.from("1.0.0")
let version2: Version = Version.from("1.1.0")
expect(version1 < version2).to(beTrue())
expect(version2 > version1).to(beTrue())
}
// MARK: ---- returns correctly for a complex minor difference
it("returns correctly for a complex minor difference") {
let version1a: Version = Version.from("90.2.90")
let version2a: Version = Version.from("90.10.0")
let version1b: Version = Version.from("2.0.7")
let version2b: Version = Version.from("2.5.0")
expect(version1a < version2a).to(beTrue())
expect(version2a > version1a).to(beTrue())
expect(version1b < version2b).to(beTrue())
expect(version2b > version1b).to(beTrue())
}
// MARK: ---- returns correctly for a simple patch difference
it("returns correctly for a simple patch difference") {
let version1: Version = Version.from("1.0.0")
let version2: Version = Version.from("1.0.1")
expect(version1 < version2).to(beTrue())
expect(version2 > version1).to(beTrue())
}
// MARK: ---- returns correctly for a complex patch difference
it("returns correctly for a complex patch difference") {
let version1a: Version = Version.from("90.90.2")
let version2a: Version = Version.from("90.90.10")
let version1b: Version = Version.from("2.5.0")
let version2b: Version = Version.from("2.5.7")
expect(version1a < version2a).to(beTrue())
expect(version2a > version1a).to(beTrue())
expect(version1b < version2b).to(beTrue())
expect(version2b > version1b).to(beTrue())
}
}
}
}
}