package com.projectsacrifice.game; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import org.junit.Test; public final class GameStringsTest { @Test public void missingOrUnknownLanguageSafelyFallsBackToEnglish() { assertEquals(GameLanguage.EN, GameLanguage.fromCode(null)); assertEquals(GameLanguage.EN, GameLanguage.fromCode("de")); GameStrings strings = GameStrings.forLanguage(GameLanguage.fromCode("de")); assertEquals("Settings", strings.settingsButton()); assertEquals("The Volunteer", strings.levelTitle(1)); } @Test public void russianPackLocalizesTheCompletePlayerFacingContract() { GameStrings english = GameStrings.forLanguage(GameLanguage.EN); GameStrings russian = GameStrings.forLanguage(GameLanguage.RU); assertEquals("Настройки", russian.settingsButton()); assertEquals("Размер управления", russian.controlSizeSetting()); assertEquals("Русский", russian.languageName()); assertEquals("Рыцарь-доброволец", russian.levelTitle(1)); assertEquals("Последнее шествие", russian.levelTitle(10)); assertEquals("Добровольцы 2 Время 00:07", russian.hudStats(2, 7_000L)); assertEquals("✓ 2 добровольца · 00:07", russian.levelBestStats(2, 7_000L)); assertEquals("★ 2 / 3 добровольца", russian.completionDeaths(true, 2, 3)); assertEquals("Смерть — это инструмент", russian.tutorialWelcomeTitle()); assertFalse(russian.tutorialSacrificeBody().trim().isEmpty()); for (int level = 1; level <= 10; level++) { assertFalse(russian.levelTitle(level).trim().isEmpty()); assertFalse(russian.levelHint(level).trim().isEmpty()); assertNotEquals(english.levelTitle(level), russian.levelTitle(level)); assertNotEquals(english.levelHint(level), russian.levelHint(level)); } } }