77 lines
1.9 KiB
Swift
77 lines
1.9 KiB
Swift
|
import Foundation
|
||
|
import Testing
|
||
|
|
||
|
@testable import ColibriLibrary
|
||
|
|
||
|
struct URL_ExtensionsTests {
|
||
|
|
||
|
// MARK: Initialisers tests
|
||
|
|
||
|
@Test(arguments: zip([String.someFilePath, .dotPath, .tildePath],
|
||
|
[URL.someFile, .dotFile, .tildeFile]))
|
||
|
func initAt(
|
||
|
with filePath: String,
|
||
|
expects url: URL
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = URL(at: filePath)
|
||
|
|
||
|
// THEN
|
||
|
#expect(result == url)
|
||
|
#expect(result.isFileURL == true)
|
||
|
}
|
||
|
|
||
|
// MARK: Computed tests
|
||
|
|
||
|
@Test(arguments: zip([URL.someFile, .dotFile, .tildeFile, .someURL],
|
||
|
[String.someFilePath, .dotPath, .tildePath, .empty]))
|
||
|
func pathString(
|
||
|
with url: URL,
|
||
|
expects path: String
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = url.pathString
|
||
|
|
||
|
// THEN
|
||
|
#expect(result == path)
|
||
|
}
|
||
|
|
||
|
// MARK: Functions tests
|
||
|
|
||
|
@Test(arguments: zip([URL.dotFile, .tildeFile, .someFile],
|
||
|
[".\(String.someFilePath)", "~\(String.someFilePath)", "\(String.someFilePath)\(String.someFilePath)"]))
|
||
|
func appendingPath(
|
||
|
with url: URL,
|
||
|
expects path: String
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = url.appendingPath(.someFilePath)
|
||
|
|
||
|
// THEN
|
||
|
#expect(result.pathString == path)
|
||
|
#expect(result.isFileURL == true)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// MARK: - String+Constants
|
||
|
|
||
|
private extension String {
|
||
|
static let dotPath = "."
|
||
|
static let empty = ""
|
||
|
static let tildePath = "~"
|
||
|
static let someFilePath = "/some/file/path"
|
||
|
}
|
||
|
|
||
|
// MARK: - URL+Constants
|
||
|
|
||
|
private extension URL {
|
||
|
static let dotFile = URL(at: .dotPath)
|
||
|
static let someFile = URL(at: .someFilePath)
|
||
|
static let someURL = URL(string: "https://some.url.path")!
|
||
|
static let tildeFile = URL(at: .tildePath)
|
||
|
}
|