|
35 | 35 | import com.djrapitops.plan.gathering.domain.ActiveSession; |
36 | 36 | import com.djrapitops.plan.gathering.domain.WorldTimes; |
37 | 37 | import com.djrapitops.plan.identification.ServerUUID; |
| 38 | +import com.djrapitops.plan.settings.config.ExtensionSettings; |
38 | 39 | import com.djrapitops.plan.storage.database.DatabaseTestPreparer; |
39 | 40 | import com.djrapitops.plan.storage.database.transactions.commands.RemoveEverythingTransaction; |
40 | 41 | import com.djrapitops.plan.storage.database.transactions.events.PlayerRegisterTransaction; |
41 | 42 | import com.djrapitops.plan.storage.database.transactions.events.StoreSessionTransaction; |
42 | 43 | import com.djrapitops.plan.storage.database.transactions.events.StoreWorldNameTransaction; |
| 44 | +import com.djrapitops.plan.storage.database.transactions.init.RemoveOldExtensionsTransaction; |
43 | 45 | import com.fasterxml.jackson.databind.ObjectMapper; |
44 | 46 | import com.fasterxml.jackson.databind.node.ObjectNode; |
45 | 47 | import org.junit.jupiter.api.BeforeEach; |
|
54 | 56 | import java.util.Map; |
55 | 57 | import java.util.Objects; |
56 | 58 | import java.util.UUID; |
| 59 | +import java.util.concurrent.TimeUnit; |
57 | 60 |
|
58 | 61 | import static org.junit.jupiter.api.Assertions.*; |
59 | 62 |
|
@@ -91,6 +94,28 @@ default void removeEverythingRemovesServerExtensionData() { |
91 | 94 | assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty()); |
92 | 95 | } |
93 | 96 |
|
| 97 | + @Test |
| 98 | + default void removeOldExtensionDataCleansData() { |
| 99 | + db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME)); |
| 100 | + |
| 101 | + ExtensionSvc extensionService = extensionService(); |
| 102 | + extensionService.register(new TableExtension()); |
| 103 | + extensionService.register(new PlayerExtension()); |
| 104 | + extensionService.register(new ServerExtension()); |
| 105 | + extensionService.updatePlayerValues(playerUUID, TestConstants.PLAYER_ONE_NAME, CallEvents.MANUAL); |
| 106 | + extensionService.updateServerValues(CallEvents.MANUAL); |
| 107 | + |
| 108 | + ExtensionSettings extensionSettings = config().getExtensionSettings(); |
| 109 | + extensionSettings.setEnabled("PlayerExtension", false); |
| 110 | + extensionSettings.setEnabled("TableExtension", false); |
| 111 | + extensionSettings.setEnabled("ServerExtension", false); |
| 112 | + |
| 113 | + db().executeTransaction(new RemoveOldExtensionsTransaction(extensionSettings, TimeUnit.DAYS.toMillis(1), serverUUID())); |
| 114 | + |
| 115 | + assertTrue(db().query(new ExtensionPlayerDataQuery(playerUUID)).isEmpty()); |
| 116 | + assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty()); |
| 117 | + } |
| 118 | + |
94 | 119 | @Test |
95 | 120 | default void extensionPlayerValuesAreStored() { |
96 | 121 | db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME)); |
|
0 commit comments