@@ -234,6 +234,58 @@ default void unsatisfiedPlayerConditionalResultsAreCleaned() {
234
234
checkThatPlayerDataExists (ConditionalExtension .condition );
235
235
}
236
236
237
+ @ Test
238
+ default void unsatisfiedPlayerConditionalResultsAreCleanedCompletely () {
239
+ db ().executeTransaction (new PlayerRegisterTransaction (playerUUID , System ::currentTimeMillis , TestConstants .PLAYER_ONE_NAME ));
240
+
241
+ ExtensionSvc extensionService = extensionService ();
242
+
243
+ extensionService .register (new RemovingConditionalExtension ());
244
+
245
+ RemovingConditionalExtension .condition = true ;
246
+ extensionService .updatePlayerValues (playerUUID , TestConstants .PLAYER_ONE_NAME , CallEvents .MANUAL );
247
+
248
+ List <ExtensionData > ofServer = db ().query (new ExtensionPlayerDataQuery (playerUUID )).get (serverUUID ());
249
+ assertTrue (ofServer != null && !ofServer .isEmpty () && !ofServer .get (0 ).getTabs ().isEmpty (), "There was no data left" );
250
+ ExtensionTabData tabData = ofServer .get (0 ).getTabs ().get (0 );
251
+ assertEquals (RemovingConditionalExtension .condition , tabData .getString ("conditionalValue" ).isPresent ());
252
+
253
+ // Reverse condition
254
+ RemovingConditionalExtension .condition = false ;
255
+ extensionService .updatePlayerValues (playerUUID , TestConstants .PLAYER_ONE_NAME , CallEvents .MANUAL );
256
+
257
+ ofServer = db ().query (new ExtensionPlayerDataQuery (playerUUID )).get (serverUUID ());
258
+ assertTrue (ofServer != null && !ofServer .isEmpty () && !ofServer .get (0 ).getTabs ().isEmpty (), "There was no data left" );
259
+ tabData = ofServer .get (0 ).getTabs ().get (0 );
260
+ assertEquals (RemovingConditionalExtension .condition , tabData .getString ("conditionalValue" ).isPresent ());
261
+ }
262
+
263
+ @ Test
264
+ default void unsatisfiedServerConditionalResultsAreCleanedCompletely () {
265
+ db ().executeTransaction (new PlayerRegisterTransaction (playerUUID , System ::currentTimeMillis , TestConstants .PLAYER_ONE_NAME ));
266
+
267
+ ExtensionSvc extensionService = extensionService ();
268
+
269
+ extensionService .register (new RemovingConditionalExtension ());
270
+
271
+ RemovingConditionalExtension .condition = true ;
272
+ extensionService .updateServerValues (CallEvents .MANUAL );
273
+
274
+ List <ExtensionData > ofServer = db ().query (new ExtensionServerDataQuery (serverUUID ()));
275
+ assertTrue (ofServer != null && !ofServer .isEmpty () && !ofServer .get (0 ).getTabs ().isEmpty (), "There was no data left" );
276
+ ExtensionTabData tabData = ofServer .get (0 ).getTabs ().get (0 );
277
+ assertEquals (RemovingConditionalExtension .condition , tabData .getString ("conditionalValue" ).isPresent ());
278
+
279
+ // Reverse condition
280
+ RemovingConditionalExtension .condition = false ;
281
+ extensionService .updateServerValues (CallEvents .MANUAL );
282
+
283
+ ofServer = db ().query (new ExtensionServerDataQuery (serverUUID ()));
284
+ assertTrue (ofServer != null && !ofServer .isEmpty () && !ofServer .get (0 ).getTabs ().isEmpty (), "There was no data left" );
285
+ tabData = ofServer .get (0 ).getTabs ().get (0 );
286
+ assertEquals (RemovingConditionalExtension .condition , tabData .getString ("conditionalValue" ).isPresent ());
287
+ }
288
+
237
289
default void checkThatPlayerDataExists (boolean condition ) {
238
290
if (condition ) { // Condition is true, conditional values exist
239
291
List <ExtensionData > ofServer = db ().query (new ExtensionPlayerDataQuery (playerUUID )).get (serverUUID ());
@@ -437,6 +489,34 @@ public String unconditional() {
437
489
}
438
490
}
439
491
492
+ @ PluginInfo (name = "ConditionalExtension" )
493
+ class RemovingConditionalExtension implements DataExtension {
494
+
495
+ static boolean condition = true ;
496
+
497
+ @ BooleanProvider (text = "a boolean" , conditionName = "condition" )
498
+ public boolean isCondition (UUID playerUUID ) {
499
+ return condition ;
500
+ }
501
+
502
+ @ StringProvider (text = "Conditional Value" )
503
+ @ Conditional ("condition" )
504
+ public String conditionalValue (UUID playerUUID ) {
505
+ return "Conditional" ;
506
+ }
507
+
508
+ @ BooleanProvider (text = "a boolean" , conditionName = "condition" )
509
+ public boolean isCondition () {
510
+ return condition ;
511
+ }
512
+
513
+ @ StringProvider (text = "Conditional Value" )
514
+ @ Conditional ("condition" )
515
+ public String conditionalValue () {
516
+ return "Conditional" ;
517
+ }
518
+ }
519
+
440
520
@ PluginInfo (name = "ServerExtension" )
441
521
class ServerExtension implements DataExtension {
442
522
@ NumberProvider (text = "a number" )
0 commit comments