resgen.swift/Tests/ResgenSwiftTests/Strings/StringFileGeneratorTests/Expectation/StringsFileGenerator+XCStringsExpectation.swift
Thibaut Schmitt c3445042b7
Some checks reported warnings
gitea-openium/resgen.swift/pipeline/head This commit is unstable
Remove a lots of code duplication in StringsFileGeneratorTests
2025-04-30 15:24:39 +02:00

130 lines
4.5 KiB
Swift

//
// StringsFileGenerator+XCStringsExpectation.swift
// ResgenSwift
//
// Created by Thibaut Schmitt on 30/04/2025.
//
@testable import ResgenSwift
extension XCStringDefinition {
enum Mock {
static func getDefinitionSectionOne(
defOneFr: String = "Section Un - Definition Un",
defOneEn: String = "Section One - Definition One",
defOneComment: String? = nil,
defTwoFr: String = "Section Un - Definition Deux",
defTwoEn: String = "Section One - Definition Two",
defTwoComment: String? = nil
) -> [XCStringDefinition] {
[
XCStringDefinition(
title: "s1_def_one",
content: XCStringDefinitionContent(
comment: defOneComment,
extractionState: "manual",
localizations: XCStringLocalizationContainer(
localizations: getXCStringLocalization(
defFr: defOneFr,
defEn: defOneEn
)
)
)
),
XCStringDefinition(
title: "s1_def_two",
content: XCStringDefinitionContent(
comment: defTwoComment,
extractionState: "manual",
localizations: XCStringLocalizationContainer(
localizations: getXCStringLocalization(
defFr: defTwoFr,
defEn: defTwoEn
)
)
)
)
]
}
static func getDefinitionSectionTwo(
defOneFr: String = "Section Deux - Definition Un",
defOneEn: String = "Section Two - Definition One",
defOneComment: String? = nil,
defTwoFr: String = "Section Deux - Definition Deux",
defTwoEn: String? = nil,
defTwoComment: String? = nil
) -> [XCStringDefinition] {
[
XCStringDefinition(
title: "s2_def_one",
content: XCStringDefinitionContent(
comment: defOneComment,
extractionState: "manual",
localizations: XCStringLocalizationContainer(
localizations: getXCStringLocalization(
defFr: defOneFr,
defEn: defOneEn
)
)
)
),
XCStringDefinition(
title: "s2_def_two",
content: XCStringDefinitionContent(
comment: defTwoComment,
extractionState: "manual",
localizations: XCStringLocalizationContainer(
localizations: getXCStringLocalization(
defFr: defTwoFr,
defEn: defTwoEn ?? ""
)
)
)
)
]
}
// MARK: - Private methods
private static func getXCStringLocalization(
defFr: String,
defEn: String
) -> [XCStringLocalization] {
var localizations = [XCStringLocalization]()
if defFr.isEmpty == false {
localizations.append(
XCStringLocalization(
lang: "fr",
content: XCStringLocalizationLangContent(
stringUnit: DefaultStringUnit(
state: "translated",
value: defFr
)
)
)
)
}
if defEn.isEmpty == false {
localizations.append(
XCStringLocalization(
lang: "en",
content: XCStringLocalizationLangContent(
stringUnit: DefaultStringUnit(
state: "translated",
value: defEn
)
)
)
)
}
return localizations
}
}
}