48 lines
1.9 KiB
Java
48 lines
1.9 KiB
Java
package com.projectsacrifice.game;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertFalse;
|
|
import static org.junit.Assert.assertSame;
|
|
import static org.junit.Assert.assertTrue;
|
|
import static org.junit.Assert.assertNotSame;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import org.junit.Test;
|
|
|
|
public final class AccessibilityStateCacheTest {
|
|
@Test
|
|
public void unchangedFramesReuseOneStatusAndOneDeduplicatedSignalSet() {
|
|
AccessibilityStateCache cache = new AccessibilityStateCache();
|
|
cache.configureSignals(Arrays.asList("lift", "lift", "door"));
|
|
|
|
assertEquals(Arrays.asList("lift", "door"), cache.signalIds());
|
|
assertTrue(cache.update(GameStrings.forLanguage(GameLanguage.EN), 1, 0, 1, true));
|
|
String first = cache.statusText();
|
|
|
|
for (int frame = 0; frame < 600; frame++) {
|
|
assertFalse(cache.update(GameStrings.forLanguage(GameLanguage.EN), 1, 0, 1, true));
|
|
assertSame(first, cache.statusText());
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void criticalStateAndLanguageChangesInvalidateExactlyOnce() {
|
|
AccessibilityStateCache cache = new AccessibilityStateCache();
|
|
cache.configureSignals(Arrays.asList("plate"));
|
|
cache.update(GameStrings.forLanguage(GameLanguage.EN), 0, 0, 1, true);
|
|
String initial = cache.statusText();
|
|
|
|
assertTrue(cache.update(GameStrings.forLanguage(GameLanguage.EN), 1, 1, 1, false));
|
|
String changed = cache.statusText();
|
|
assertNotSame(initial, changed);
|
|
assertTrue(changed.contains("Signals 1/1"));
|
|
assertTrue(changed.contains("Volunteer respawning"));
|
|
assertFalse(cache.update(GameStrings.forLanguage(GameLanguage.EN), 1, 1, 1, false));
|
|
|
|
assertTrue(cache.update(GameStrings.forLanguage(GameLanguage.RU), 1, 1, 1, false));
|
|
assertTrue(cache.statusText().contains("Сигналы 1/1"));
|
|
assertFalse(cache.update(GameStrings.forLanguage(GameLanguage.RU), 1, 1, 1, false));
|
|
}
|
|
}
|