diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/eu/mulk/aendggner/BezugTest.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/test/java/eu/mulk/aendggner/BezugTest.java b/src/test/java/eu/mulk/aendggner/BezugTest.java new file mode 100644 index 0000000..6b54691 --- /dev/null +++ b/src/test/java/eu/mulk/aendggner/BezugTest.java @@ -0,0 +1,59 @@ +// SPDX-FileCopyrightText: 2026 Matthias Andreas Benkard <code@mail.matthias.benkard.de> +// SPDX-License-Identifier: AGPL-3.0-or-later +package eu.mulk.aendggner; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +/** + * Geprüft wird, was ohne Netz zu prüfen ist: die Ableitung der Kennung, die Ableitung des Namens + * und der Vorrang der vorhandenen Datei. Der Abruf selbst gehört nicht in eine Prüfung, die auf + * jedem Rechner laufen soll. + */ +class BezugTest { + + /** + * Die Kennung des Portals: klein geschrieben, und was kein Buchstabe, keine Ziffer und kein + * Bindestrich ist, wird zum Unterstrich. So schreibt gesetze-im-internet.de seine Anschriften. + */ + @ParameterizedTest + @CsvSource({ + "UWG 2004, uwg_2004", + "uwg_2004, uwg_2004", + "GEG, geg", + "1-DM-GoldmünzG, 1-dm-goldm_nzg", + "' IfSG ', ifsg", + }) + void leitetDieKennungAb(String angabe, String erwartet) { + assertThat(Bezug.kennung(angabe)).isEqualTo(erwartet); + } + + @ParameterizedTest + @CsvSource({ + "https://dserver.bundestag.de/btd/21/018/2101855.pdf, 2101855.pdf", + "https://www.gesetze-im-internet.de/uwg_2004/xml.zip, xml.zip", + "https://example.org/heft.pdf?fassung=2#seite3, heft.pdf", + }) + void leitetDenNamenAusDerAnschriftAb(String anschrift, String erwartet) { + assertThat(Bezug.dateiname(anschrift)).isEqualTo(erwartet); + } + + /** Die vorhandene Datei hat den Vorrang: Wer eine Datei „gii:etwas“ nennt, meint sie. */ + @Test + void nimmtDieVorhandeneDateiVorJederDeutung() throws IOException, InterruptedException { + var datei = Path.of("src/test/resources/sampledata/Brandenburg/FraktG-alt.txt"); + assumeTrue(Files.exists(datei), "Beispieldaten fehlen"); + + var quelle = Bezug.hole(datei.toString()); + + assertThat(quelle.name()).isEqualTo("FraktG-alt.txt"); + assertThat(quelle.inhalt()).isEqualTo(Files.readAllBytes(datei)); + } +} |
