diff --git a/src/main/java/world/bentobox/warps/WarpSignsManager.java b/src/main/java/world/bentobox/warps/WarpSignsManager.java index 9fda886..9789547 100644 --- a/src/main/java/world/bentobox/warps/WarpSignsManager.java +++ b/src/main/java/world/bentobox/warps/WarpSignsManager.java @@ -47,6 +47,7 @@ import world.bentobox.warps.objects.WarpsData; */ public class WarpSignsManager { private static final int MAX_WARPS = 600; + private static final String WARPS = "warps"; private BentoBox plugin; // Map of all warps stored as player, warp sign Location private Map> worldsWarpList; @@ -176,11 +177,11 @@ public class WarpSignsManager { /** * Load the warps and check if they still exist */ - private void loadWarpList() { - addon.getLogger().info("Loading warps..."); + void loadWarpList() { + addon.log("Loading warps..."); worldsWarpList = new HashMap<>(); - if (handler.objectExists("warps")) { - warpsData = handler.loadObject("warps"); + if (handler.objectExists(WARPS)) { + warpsData = handler.loadObject(WARPS); // Load into map if (warpsData != null) { warpsData.getWarpSigns().forEach((k,v) -> { @@ -189,6 +190,8 @@ public class WarpSignsManager { getWarpMap(k.getWorld()).put(v, k); } }); + } else { + warpsData = new WarpsData(); } } } diff --git a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java index 2a6b290..6266390 100644 --- a/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java +++ b/src/test/java/world/bentobox/warps/WarpSignsManagerTest.java @@ -9,6 +9,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -289,7 +290,7 @@ public class WarpSignsManagerTest { */ @Test public void testWarpSignsManager() throws Exception { - verify(logger).info("Loading warps..."); + verify(addon).log("Loading warps..."); verify(load).getWarpSigns(); verify(block).getType(); } @@ -444,4 +445,34 @@ public class WarpSignsManagerTest { assertFalse(wsm.hasWarp(world, UUID.randomUUID())); } + /** + * Test method for {@link world.bentobox.warps.WarpSignsManager#loadWarpList()}. + */ + @Test + public void testLoadWarpListNoWarpTable() { + // Run again but with no database table + when(handler.objectExists(anyString())).thenReturn(false); + wsm = new WarpSignsManager(addon, plugin); + // Save + wsm.saveWarpList(); + // Default load in constructor check + verify(addon, times(2)).log(eq("Loading warps...")); + assertTrue(wsm.getWarpMap(world).isEmpty()); + } + + /** + * Test method for {@link world.bentobox.warps.WarpSignsManager#loadWarpList()}. + * @throws Exception + */ + @Test + public void testLoadWarpListEmptyWarpTable() throws Exception { + // Run again but with no data in table + when(handler.loadObject(anyString())).thenReturn(null); + wsm = new WarpSignsManager(addon, plugin); + // Save + wsm.saveWarpList(); + // Default load in constructor check + verify(addon, times(2)).log(eq("Loading warps...")); + assertTrue(wsm.getWarpMap(world).isEmpty()); + } }