Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Reviewed-on: #1
105 lines
2.8 KiB
Swift
105 lines
2.8 KiB
Swift
//
|
|
// SectionTests.swift
|
|
//
|
|
//
|
|
// Created by Thibaut Schmitt on 06/09/2022.
|
|
//
|
|
|
|
import Foundation
|
|
import XCTest
|
|
|
|
@testable import ResgenSwift
|
|
|
|
final class SectionTests: XCTestCase {
|
|
|
|
// MARK: - Match line
|
|
|
|
func testMatchingDefinition() {
|
|
// Given
|
|
let line = "[[section_name]]"
|
|
|
|
// When
|
|
let section = Section.match(line)
|
|
|
|
// Expect
|
|
XCTAssertNotNil(section)
|
|
XCTAssertEqual(section?.name, "section_name")
|
|
}
|
|
|
|
func testNotMatchingDefinition() {
|
|
// Given
|
|
let lines = ["section_name",
|
|
"[section_name]",
|
|
"[section_name",
|
|
"[[section_name",
|
|
"[[section_name]",
|
|
"section_name]",
|
|
"section_name]]",
|
|
"[section_name]]"]
|
|
|
|
// When
|
|
let matches = lines.compactMap { Section.match($0) }
|
|
|
|
// Expect
|
|
XCTAssertEqual(matches.isEmpty, true)
|
|
}
|
|
|
|
// MARK: - Matching tags
|
|
|
|
func testMatchingTags() {
|
|
// Given
|
|
let section = Section(name: "section_name")
|
|
section.definitions = [
|
|
{
|
|
let def = Definition(name: "definition_name")
|
|
def.tags = ["ios","iosonly"]
|
|
return def
|
|
}(),
|
|
{
|
|
let def = Definition(name: "definition_name_two")
|
|
def.tags = ["droid","droidonly"]
|
|
return def
|
|
}()
|
|
]
|
|
|
|
// When
|
|
let match1 = section.hasOneOrMoreMatchingTags(tags: ["ios"])
|
|
let match2 = section.hasOneOrMoreMatchingTags(tags: ["iosonly"])
|
|
let match3 = section.hasOneOrMoreMatchingTags(tags: ["droid"])
|
|
let match4 = section.hasOneOrMoreMatchingTags(tags: ["droidonly"])
|
|
|
|
// Expect
|
|
XCTAssertTrue(match1)
|
|
XCTAssertTrue(match2)
|
|
XCTAssertTrue(match3)
|
|
XCTAssertTrue(match4)
|
|
}
|
|
|
|
func testNotMatchingTags() {
|
|
// Given
|
|
let section = Section(name: "section_name")
|
|
section.definitions = [
|
|
{
|
|
let def = Definition(name: "definition_name")
|
|
def.tags = ["ios","iosonly"]
|
|
return def
|
|
}(),
|
|
{
|
|
let def = Definition(name: "definition_name_two")
|
|
def.tags = ["droid","droidonly"]
|
|
return def
|
|
}()
|
|
]
|
|
|
|
// When
|
|
let match1 = section.hasOneOrMoreMatchingTags(tags: ["web"])
|
|
let match2 = section.hasOneOrMoreMatchingTags(tags: ["webonly"])
|
|
let match3 = section.hasOneOrMoreMatchingTags(tags: ["azerty"])
|
|
|
|
// Expect
|
|
XCTAssertFalse(match1)
|
|
XCTAssertFalse(match2)
|
|
XCTAssertFalse(match3)
|
|
}
|
|
}
|