From 67a69e34e8bf5d6c0c281c92f0d5f59aa94c9ccc Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 26 Nov 2022 15:31:43 +0100 Subject: [PATCH] Make unit tests in LocaleFileManagerTest deterministic The order in which files inside of a given directory are listed is not guaranteed in any way. This causes tests to work on my machine but fail on out GitHub Actions CI/CD pipeline. --- .../com/songoda/core/locale/LocaleFileManagerTest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Core/src/test/java/com/songoda/core/locale/LocaleFileManagerTest.java b/Core/src/test/java/com/songoda/core/locale/LocaleFileManagerTest.java index 422d956f..8f5b29fb 100644 --- a/Core/src/test/java/com/songoda/core/locale/LocaleFileManagerTest.java +++ b/Core/src/test/java/com/songoda/core/locale/LocaleFileManagerTest.java @@ -14,6 +14,8 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -55,7 +57,8 @@ class LocaleFileManagerTest { String[] localeFiles = plugin.getDataFolder().list(); Assertions.assertNotNull(localeFiles); - Assertions.assertArrayEquals(new String[] {"en.yml", "en_US.lang", "de.txt"}, localeFiles); + Arrays.sort(localeFiles); + Assertions.assertArrayEquals(new String[] {"de.txt", "en.yml", "en_US.lang"}, localeFiles); Assertions.assertSame(4, httpClient.callsOnGet.size()); Assertions.assertTrue(httpClient.callsOnGet.get(0).contains("/test/_index.txt")); @@ -85,7 +88,8 @@ class LocaleFileManagerTest { String[] localeFiles = plugin.getDataFolder().list(); Assertions.assertNotNull(localeFiles); - Assertions.assertArrayEquals(new String[] {"en.yml", "en_US.lang", "fr.lang", "de.txt"}, localeFiles); + Arrays.sort(localeFiles); + Assertions.assertArrayEquals(new String[] {"de.txt", "en.yml", "en_US.lang", "fr.lang"}, localeFiles); Assertions.assertSame(3, httpClient.callsOnGet.size()); Assertions.assertTrue(httpClient.callsOnGet.get(0).contains("/test/_index.txt"));