mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.8 KiB
Swift
99 lines
3.8 KiB
Swift
2 years ago
|
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
import Quick
|
||
|
import Nimble
|
||
|
|
||
|
@testable import SessionUtilitiesKit
|
||
|
|
||
|
class VersionSpec: QuickSpec {
|
||
|
// MARK: - Spec
|
||
|
|
||
|
override func spec() {
|
||
|
describe("a Version") {
|
||
|
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))
|
||
|
}
|
||
|
|
||
|
it("correctly exposes a string value") {
|
||
|
let version: Version = Version(major: 1, minor: 20, patch: 3)
|
||
|
|
||
|
expect(version.stringValue).to(equal("1.20.3"))
|
||
|
}
|
||
|
|
||
|
context("when checking equality") {
|
||
|
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())
|
||
|
}
|
||
|
|
||
|
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())
|
||
|
}
|
||
|
}
|
||
|
|
||
|
context("when comparing versions") {
|
||
|
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())
|
||
|
}
|
||
|
|
||
|
it("returns correctly for a complex major difference") {
|
||
|
let version1: Version = Version.from("2.90.90")
|
||
|
let version2: Version = Version.from("10.0.0")
|
||
|
|
||
|
expect(version1 < version2).to(beTrue())
|
||
|
expect(version2 > version1).to(beTrue())
|
||
|
}
|
||
|
|
||
|
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())
|
||
|
}
|
||
|
|
||
|
it("returns correctly for a complex minor difference") {
|
||
|
let version1: Version = Version.from("90.2.90")
|
||
|
let version2: Version = Version.from("90.10.0")
|
||
|
|
||
|
expect(version1 < version2).to(beTrue())
|
||
|
expect(version2 > version1).to(beTrue())
|
||
|
}
|
||
|
|
||
|
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())
|
||
|
}
|
||
|
|
||
|
it("returns correctly for a complex patch difference") {
|
||
|
let version1: Version = Version.from("90.90.2")
|
||
|
let version2: Version = Version.from("90.90.10")
|
||
|
|
||
|
expect(version1 < version2).to(beTrue())
|
||
|
expect(version2 > version1).to(beTrue())
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|