summaryrefslogtreecommitdiff
path: root/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt')
-rw-r--r--support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt102
1 files changed, 0 insertions, 102 deletions
diff --git a/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt b/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt
deleted file mode 100644
index 704d3e319d..0000000000
--- a/support/arara/source/src/test/kotlin/org/islandoftex/arara/localization/LanguageCoverageTest.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-// SPDX-License-Identifier: BSD-3-Clause
-package org.islandoftex.arara.localization
-
-import ch.qos.cal10n.verifier.MessageKeyVerifier
-import io.kotlintest.inspectors.forAll
-import io.kotlintest.matchers.collections.shouldNotBeEmpty
-import io.kotlintest.shouldBe
-import io.kotlintest.shouldThrow
-import io.kotlintest.specs.ShouldSpec
-import java.io.File
-import java.io.IOException
-import java.nio.file.Files
-import java.nio.file.Path
-import java.nio.file.Paths
-import java.util.Locale
-import java.util.stream.Collectors
-import org.islandoftex.arara.model.AraraException
-
-class LanguageCoverageTest : ShouldSpec({
- "locale definitions" {
- /**
- * Helper method, checks the provided locale (all keys set?).
- *
- * @param locale The locale.
- * @return The size of the error list.
- */
- fun check(locale: Locale): Int {
- val errors = MessageKeyVerifier(Messages::class.java).verify(locale)
- errors.forEach(System.err::println)
- return errors.size
- }
-
- should("succeed instantiating known locale") {
- Language("en").locale.language shouldBe "en"
- }
- should("throw on unknown locale instantiation") {
- shouldThrow<AraraException> {
- Language("quack")
- }
- }
-
- should("not error on known localizations") {
- listOf("en", "de", "nl", "it").forAll {
- check(Locale(it)) shouldBe 0
- }
- check(Locale("en", "QN")) shouldBe 0
- check(Locale("pt", "BR")) shouldBe 0
- }
- }
- "language coverage" {
- /*
- * Tests the localized messages, checking if all messages are properly
- * quoted (but not necessarily whether they are loadable).
- */
- should("get all strings from every language") {
- // get all files
- val files = Files.list(
- Paths.get("src/main/resources/org/islandoftex/arara/localization"))
- .map { p: Path ->
- val f = p.toFile()
- if (f.name.endsWith("properties") && !f.isDirectory) f
- else null
- }
- .collect(Collectors.toList())
- .toList()
- .filterNotNull()
- files.shouldNotBeEmpty()
-
- // for each report, print
- // the corresponding entry
- files.map { file: File ->
- try {
- LanguageReport.analyze(file)
- } catch (exception: IOException) {
- throw AssertionError(
- "Fatal exception: an error was raised while " +
- "trying to read one of the languages. Please " +
- "make sure all languages in the provided " +
- "directory have read permission.")
- }
- }.forEach { report ->
- // debug output
- println(report.reference.name +
- "\t" + String.format(" %2.2f%%", report.coverage))
-
- // if there are problematic lines,
- // add the current language report
- if (report.lines.isNotEmpty()) {
- // legend: S = Simple message, single quotes should not be doubled
- // P = Parametrized message, single quotes must be doubled
-
- // build the beginning of the line
- println(report.reference.name)
- // print error lines
- println(report.lines)
- }
-
- report.coverage shouldBe 100.0f
- }
- }
- }
-})