Skip to content

Commit 4943e61

Browse files
committed
Update tests for backgroundType rename and split migration methods
1 parent c4c544e commit 4943e61

4 files changed

Lines changed: 23 additions & 19 deletions

File tree

HMCL/src/main/java/org/jackhuang/hmcl/setting/LegacyConfigMigrator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,8 @@ static void migrateLegacyLanguage(JsonObject json) {
607607
}
608608

609609
/// Migrates the legacy background image type into the current enum values.
610-
private static void migrateLegacyBackgroundImageType(JsonObject json) {
610+
@VisibleForTesting
611+
static void migrateLegacyBackgroundImageType(JsonObject json) {
611612
JsonElement legacyValue = json.get("backgroundType");
612613
@Nullable Integer ordinal = JsonUtils.getInteger(legacyValue);
613614
if (ordinal != null && ordinal >= 0 && ordinal < LEGACY_BACKGROUND_IMAGE_TYPES.length) {
@@ -623,7 +624,8 @@ private static void migrateLegacyBackgroundImageType(JsonObject json) {
623624
}
624625

625626
/// Migrates the legacy proxy type ordinal into the current enum value.
626-
private static void migrateLegacyProxyType(JsonObject json) {
627+
@VisibleForTesting
628+
static void migrateLegacyProxyType(JsonObject json) {
627629
JsonElement legacyValue = json.get("proxyType");
628630
@Nullable Integer ordinal = JsonUtils.getInteger(legacyValue);
629631
if (ordinal == null || ordinal < 0 || ordinal >= LEGACY_PROXY_TYPES.length) {

HMCL/src/test/java/org/jackhuang/hmcl/setting/GameDirectoriesTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ public void preservesPatchSchemaAndUnknownFields() throws IOException {
281281
GameDirectories::new);
282282

283283
JsonSettingFile.LoadResult<GameDirectories> result = file.load(null);
284-
assertTrue(result.allowSave());
284+
assertTrue(result.value().isSaveable());
285285
assertEquals(new JsonSchema("https://schemas.glavo.site/hmcl/game-directories/1.0.1"),
286286
result.value().getSchema());
287287

@@ -308,7 +308,7 @@ public void rejectsSavingFallbackForMalformedDetachedFile() throws IOException {
308308

309309
JsonSettingFile.LoadResult<GameDirectories> result = file.load(null);
310310

311-
assertFalse(result.allowSave());
311+
assertFalse(result.value().isSaveable());
312312
assertEquals("{", Files.readString(location));
313313
}
314314

HMCL/src/test/java/org/jackhuang/hmcl/setting/LauncherSettingsMigrationTest.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,16 @@ public void migratesLegacyEnumOrdinals() {
8989
}
9090
""").getAsJsonObject();
9191

92-
LegacyConfigMigrator.migrateLegacyEnumOrdinals(settings);
92+
LegacyConfigMigrator.migrateLegacyBackgroundImageType(settings);
93+
LegacyConfigMigrator.migrateLegacyProxyType(settings);
9394
LauncherSettings launcherSettings = Objects.requireNonNull(LauncherSettings.fromJson(settings));
9495
JsonObject serialized = JsonParser.parseString(launcherSettings.toJson()).getAsJsonObject();
9596

96-
assertFalse(settings.has("backgroundType"));
97-
assertEquals("NETWORK", settings.get("backgroundImageType").getAsString());
97+
assertEquals("NETWORK", settings.get("backgroundType").getAsString());
9898
assertEquals("SOCKS", settings.get("proxyType").getAsString());
99-
assertEquals(EnumBackgroundImage.NETWORK, launcherSettings.backgroundImageTypeProperty().get());
99+
assertEquals(EnumBackgroundImage.NETWORK, launcherSettings.backgroundTypeProperty().get());
100100
assertEquals(Proxy.Type.SOCKS, launcherSettings.proxyTypeProperty().get());
101-
assertFalse(serialized.has("backgroundType"));
102-
assertEquals("NETWORK", serialized.get("backgroundImageType").getAsString());
101+
assertEquals("NETWORK", serialized.get("backgroundType").getAsString());
103102
assertEquals("SOCKS", serialized.get("proxyType").getAsString());
104103
}
105104

@@ -113,13 +112,13 @@ public void migratesLegacyEnumOrdinalStrings() {
113112
}
114113
""").getAsJsonObject();
115114

116-
LegacyConfigMigrator.migrateLegacyEnumOrdinals(settings);
115+
LegacyConfigMigrator.migrateLegacyBackgroundImageType(settings);
116+
LegacyConfigMigrator.migrateLegacyProxyType(settings);
117117
LauncherSettings launcherSettings = Objects.requireNonNull(LauncherSettings.fromJson(settings));
118118

119-
assertFalse(settings.has("backgroundType"));
120-
assertEquals("CUSTOM", settings.get("backgroundImageType").getAsString());
119+
assertEquals("CUSTOM", settings.get("backgroundType").getAsString());
121120
assertEquals("DIRECT", settings.get("proxyType").getAsString());
122-
assertEquals(EnumBackgroundImage.CUSTOM, launcherSettings.backgroundImageTypeProperty().get());
121+
assertEquals(EnumBackgroundImage.CUSTOM, launcherSettings.backgroundTypeProperty().get());
123122
assertEquals(Proxy.Type.DIRECT, launcherSettings.proxyTypeProperty().get());
124123
}
125124

HMCL/src/test/java/org/jackhuang/hmcl/setting/UserSettingsTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void writesCurrentSchema() {
4343
/// Tests that legacy global config content can be read as current user settings.
4444
@Test
4545
public void readsLegacyGlobalConfigFormat() {
46-
UserSettings settings = Objects.requireNonNull(UserSettings.fromJson("""
46+
String legacyUserConfig = """
4747
{
4848
"agreementVersion": 1,
4949
"terracottaAgreementVersion": 2,
@@ -54,12 +54,15 @@ public void readsLegacyGlobalConfigFormat() {
5454
"userJava": ["java-a"],
5555
"disabledJava": ["java-b"]
5656
}
57-
"""));
57+
""";
58+
UserSettings settings = Objects.requireNonNull(UserSettings.fromJson(legacyUserConfig));
59+
UserState state = Objects.requireNonNull(UserState.fromJson(legacyUserConfig));
5860

5961
assertEquals(UserSettings.CURRENT_SCHEMA, settings.getSchema());
60-
assertEquals(1, settings.agreementVersionProperty().get());
61-
assertEquals(2, settings.terracottaAgreementVersionProperty().get());
62-
assertEquals(3, settings.platformPromptVersionProperty().get());
62+
assertEquals(UserState.CURRENT_SCHEMA, state.getSchema());
63+
assertEquals(1, state.agreementVersionProperty().get());
64+
assertEquals(2, state.terracottaAgreementVersionProperty().get());
65+
assertEquals(3, state.platformPromptVersionProperty().get());
6366
assertEquals(7, settings.logRetentionProperty().get());
6467
assertTrue(settings.enableOfflineAccountProperty().get());
6568
assertEquals("gray", settings.fontAntiAliasingProperty().get());

0 commit comments

Comments
 (0)