94 lines
2.0 KiB
Swift
94 lines
2.0 KiB
Swift
|
import Testing
|
||
|
|
||
|
@testable import AppLibrary
|
||
|
|
||
|
@Suite("PathProvider", .tags(.provider))
|
||
|
struct PathProviderTests {
|
||
|
|
||
|
// MARK: Functions tests
|
||
|
|
||
|
@Test(arguments: zip([String].pathURLs, [String].nameArchives))
|
||
|
func archiveName(
|
||
|
from path: String,
|
||
|
expects name: String
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = PathProvider.archiveName(from: path)
|
||
|
|
||
|
// THEN
|
||
|
#expect(result == name)
|
||
|
}
|
||
|
|
||
|
@Test(arguments: zip([String].pathURLs, [String].pathArchives))
|
||
|
func archivePath(
|
||
|
from path: String,
|
||
|
expects archive: String
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = PathProvider.archivePath(from: path)
|
||
|
|
||
|
// THEN
|
||
|
#expect(result == archive)
|
||
|
}
|
||
|
|
||
|
@Test(arguments: zip([String].pathURLs, [String].pathResources))
|
||
|
func resourcePath(
|
||
|
from path: String,
|
||
|
expects resource: String
|
||
|
) async throws {
|
||
|
// GIVEN
|
||
|
// WHEN
|
||
|
let result = PathProvider.resourcePath(from: path)
|
||
|
|
||
|
// THEN
|
||
|
#expect(result == resource)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// MARK: - Collection+Strings
|
||
|
|
||
|
private extension Collection where Element == String {
|
||
|
|
||
|
// MARK: Properties
|
||
|
|
||
|
static var nameArchives: [Element] {[
|
||
|
.empty,
|
||
|
.empty,
|
||
|
.empty,
|
||
|
"somearchive",
|
||
|
"somearchive",
|
||
|
"somearchive"
|
||
|
]}
|
||
|
|
||
|
static var pathArchives: [Element] {[
|
||
|
.empty,
|
||
|
.empty,
|
||
|
.empty,
|
||
|
"/SomeArchive.doccarchive",
|
||
|
"/SomeArchive.doccarchive",
|
||
|
"/SomeArchive.doccarchive"
|
||
|
]}
|
||
|
|
||
|
static var pathResources: [Element] {[
|
||
|
.forwardSlash,
|
||
|
.forwardSlash,
|
||
|
.forwardSlash,
|
||
|
.forwardSlash,
|
||
|
.forwardSlash,
|
||
|
"/path/to/resource"
|
||
|
]}
|
||
|
|
||
|
static var pathURLs: [Element] {[
|
||
|
.empty,
|
||
|
"/archives",
|
||
|
"/archives/",
|
||
|
"/archives/SomeArchive",
|
||
|
"/archives/SomeArchive/",
|
||
|
"/archives/SomeArchive/path/to/resource"
|
||
|
]}
|
||
|
|
||
|
}
|