3535import com .djrapitops .plan .gathering .domain .ActiveSession ;
3636import com .djrapitops .plan .gathering .domain .WorldTimes ;
3737import com .djrapitops .plan .identification .ServerUUID ;
38+ import com .djrapitops .plan .settings .config .ExtensionSettings ;
3839import com .djrapitops .plan .storage .database .DatabaseTestPreparer ;
3940import com .djrapitops .plan .storage .database .transactions .commands .RemoveEverythingTransaction ;
4041import com .djrapitops .plan .storage .database .transactions .events .PlayerRegisterTransaction ;
4142import com .djrapitops .plan .storage .database .transactions .events .StoreSessionTransaction ;
4243import com .djrapitops .plan .storage .database .transactions .events .StoreWorldNameTransaction ;
44+ import com .djrapitops .plan .storage .database .transactions .init .RemoveOldExtensionsTransaction ;
4345import com .fasterxml .jackson .databind .ObjectMapper ;
4446import com .fasterxml .jackson .databind .node .ObjectNode ;
4547import org .junit .jupiter .api .BeforeEach ;
5456import java .util .Map ;
5557import java .util .Objects ;
5658import java .util .UUID ;
59+ import java .util .concurrent .TimeUnit ;
5760
5861import static org .junit .jupiter .api .Assertions .*;
5962
@@ -75,6 +78,10 @@ default void unregisterExtensions() {
7578 extensionService .unregister (new TableExtension ());
7679 extensionService .unregister (new ThrowingExtension ());
7780 extensionService .unregister (new ClickEventTestExtension ());
81+ ExtensionSettings extensionSettings = config ().getExtensionSettings ();
82+ extensionSettings .setEnabled ("PlayerExtension" , true );
83+ extensionSettings .setEnabled ("TableExtension" , true );
84+ extensionSettings .setEnabled ("ServerExtension" , true );
7885 }
7986
8087 @ Test
@@ -91,6 +98,28 @@ default void removeEverythingRemovesServerExtensionData() {
9198 assertTrue (db ().query (new ExtensionServerDataQuery (serverUUID ())).isEmpty ());
9299 }
93100
101+ @ Test
102+ default void removeOldExtensionDataCleansData () {
103+ db ().executeTransaction (new PlayerRegisterTransaction (TestConstants .PLAYER_ONE_UUID , System ::currentTimeMillis , TestConstants .PLAYER_ONE_NAME ));
104+
105+ ExtensionSvc extensionService = extensionService ();
106+ extensionService .register (new TableExtension ());
107+ extensionService .register (new PlayerExtension ());
108+ extensionService .register (new ServerExtension ());
109+ extensionService .updatePlayerValues (playerUUID , TestConstants .PLAYER_ONE_NAME , CallEvents .MANUAL );
110+ extensionService .updateServerValues (CallEvents .MANUAL );
111+
112+ ExtensionSettings extensionSettings = config ().getExtensionSettings ();
113+ extensionSettings .setEnabled ("PlayerExtension" , false );
114+ extensionSettings .setEnabled ("TableExtension" , false );
115+ extensionSettings .setEnabled ("ServerExtension" , false );
116+
117+ db ().executeTransaction (new RemoveOldExtensionsTransaction (extensionSettings , TimeUnit .DAYS .toMillis (1 ), serverUUID ()));
118+
119+ assertTrue (db ().query (new ExtensionPlayerDataQuery (playerUUID )).isEmpty ());
120+ assertTrue (db ().query (new ExtensionServerDataQuery (serverUUID ())).isEmpty ());
121+ }
122+
94123 @ Test
95124 default void extensionPlayerValuesAreStored () {
96125 db ().executeTransaction (new PlayerRegisterTransaction (TestConstants .PLAYER_ONE_UUID , System ::currentTimeMillis , TestConstants .PLAYER_ONE_NAME ));
0 commit comments