1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-12-18 11:11:34 +03:00
vimr/Ignore/Tests/IgnoreTests/IgnoreSplitTest.swift

57 lines
1.4 KiB
Swift

/// Tae Won Ha - http://taewon.de - @hataewon
/// See LICENSE
@testable import Ignore
import Nimble
import XCTest
private struct IgnoreSplittingTestSpec {
var fileName: String
var mixed: [String]
var disallow: [String]
}
private let ignoreSplittingTestSpecs = [
IgnoreSplittingTestSpec(
fileName: "ignore-splitting-0",
mixed: [],
disallow: ["*.a", "*.b", "*.c", "*.d"]
),
IgnoreSplittingTestSpec(
fileName: "ignore-splitting-1",
mixed: ["*.a"],
disallow: ["*.b", "*.c", "*.d"]
),
IgnoreSplittingTestSpec(
fileName: "ignore-splitting-2",
mixed: ["*.a", "*.b"],
disallow: ["*.c", "*.d"]
),
IgnoreSplittingTestSpec(
fileName: "ignore-splitting-3",
mixed: ["*.a", "*.b", "*.c"],
disallow: ["*.d"]
),
IgnoreSplittingTestSpec(
fileName: "ignore-splitting-4",
mixed: ["*.a", "*.b", "*.c", "*.d"],
disallow: []
),
]
final class IgnoreSplitTest: XCTestCase {
func testIgnoreSplitting() {
ignoreSplittingTestSpecs.forEach { spec in
let url = Bundle.module.url(
forResource: "IgnoreCollectionTest",
withExtension: nil,
subdirectory: "Resources"
)!
let ignoreFile = Ignore(base: url, parent: nil, ignoreFileNames: [spec.fileName])!
expect(ignoreFile.mixedIgnores.map(\.pattern)).to(equal(spec.mixed))
expect(ignoreFile.remainingDisallowIgnores.map(\.pattern)).to(equal(spec.disallow))
}
}
}