[Enhancement] Optional+Nil extension (#17)

This PR contains the work done to add some properties to the `Optional` primitives. In addition, some work has been done to improve some existing codebase as well.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #17
This commit was merged in pull request #17.
This commit is contained in:
2023-05-06 21:19:40 +00:00
parent 2f3712c830
commit ffb1170760
6 changed files with 132 additions and 12 deletions
@@ -0,0 +1,66 @@
//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
import Core
import XCTest
final class Optional_NilTests: XCTestCase {
// MARK: Properties
private var optional: Int?
private var result: Bool!
// MARK: Tests
func test_isNil_whenOptionalHasNotBeenSet() {
// GIVEN
// WHEN
result = optional.isNil
// THEN
XCTAssertTrue(result)
}
func test_isNil_whenOptionalHasBeenSet() {
// GIVEN
optional = 0
// WHEN
result = optional.isNil
// THEN
XCTAssertFalse(result)
}
func test_isNotNil_whenOptionalHasNotBeenSet() {
// GIVEN
// WHEN
result = optional.isNotNil
// THEN
XCTAssertFalse(result)
}
func test_isNotNil_whenOptionalHasBeenSet() {
// GIVEN
optional = 0
// WHEN
result = optional.isNotNil
// THEN
XCTAssertTrue(result)
}
}
@@ -31,7 +31,7 @@ final class String_EmptyTests: XCTestCase {
let string = String.empty
// WHEN
let result = string.isNotEmpty()
let result = string.isNotEmpty
// THEN
XCTAssertFalse(result)
@@ -42,7 +42,7 @@ final class String_EmptyTests: XCTestCase {
let string = String.Test.string
// WHEN
let result = string.isNotEmpty()
let result = string.isNotEmpty
// THEN
XCTAssertTrue(result)
@@ -0,0 +1,34 @@
//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
import Core
import XCTest
final class TimeZone_ZoneTests: XCTestCase {
// MARK: Properties
private var timeZone: TimeZone!
// MARK: Tests
func test_gmt() {
// GIVEN
// WHEN
timeZone = .gmt
// THEN
XCTAssertEqual(timeZone.identifier, "GMT")
XCTAssertEqual(timeZone.secondsFromGMT(), 0)
}
}