diff --git a/Plan/bukkit/src/test/java/utilities/mocks/PlanBukkitMocker.java b/Plan/bukkit/src/test/java/utilities/mocks/PlanBukkitMocker.java index a40faa1d2..67e6c8f0b 100644 --- a/Plan/bukkit/src/test/java/utilities/mocks/PlanBukkitMocker.java +++ b/Plan/bukkit/src/test/java/utilities/mocks/PlanBukkitMocker.java @@ -38,9 +38,9 @@ import utilities.mocks.objects.TestLogger; import utilities.mocks.objects.TestRunnableFactory; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; import static org.mockito.Mockito.doReturn; @@ -90,11 +90,10 @@ public class PlanBukkitMocker extends Mocker { } PlanBukkitMocker withPluginDescription() { - try { - File pluginYml = getFile("/plugin.yml"); - PluginDescriptionFile description = new PluginDescriptionFile(new FileInputStream(pluginYml)); + try (InputStream in = Files.newInputStream(getFile("/plugin.yml").toPath())) { + PluginDescriptionFile description = new PluginDescriptionFile(in); doReturn(description).when(planMock).getDescription(); - } catch (FileNotFoundException | InvalidDescriptionException e) { + } catch (IOException | InvalidDescriptionException e) { System.out.println("Error while setting plugin description"); } return this; diff --git a/Plan/common/src/test/java/com/djrapitops/plan/db/DatabaseTest.java b/Plan/common/src/test/java/com/djrapitops/plan/db/DatabaseTest.java index 5b54f0451..5d233efca 100644 --- a/Plan/common/src/test/java/com/djrapitops/plan/db/DatabaseTest.java +++ b/Plan/common/src/test/java/com/djrapitops/plan/db/DatabaseTest.java @@ -694,27 +694,59 @@ public interface DatabaseTest { } @Test - default void testBackupAndRestore() throws Exception { + default void testBackupAndRestoreSQLite() throws Exception { + File tempFile = Files.createTempFile(system().getPlanFiles().getDataFolder().toPath(), "backup-", ".db").toFile(); + tempFile.deleteOnExit(); + SQLiteDB backup = system().getDatabaseSystem().getSqLiteFactory().usingFile(tempFile); + backup.setTransactionExecutorServiceProvider(MoreExecutors::newDirectExecutorService); + try { + backup.init(); + + saveAllData(); + + backup.executeTransaction(new BackupCopyTransaction(db(), backup)); + + assertQueryResultIsEqual(db(), backup, BaseUserQueries.fetchAllBaseUsers()); + assertQueryResultIsEqual(db(), backup, UserInfoQueries.fetchAllUserInformation()); + assertQueryResultIsEqual(db(), backup, NicknameQueries.fetchAllNicknameData()); + assertQueryResultIsEqual(db(), backup, GeoInfoQueries.fetchAllGeoInformation()); + assertQueryResultIsEqual(db(), backup, SessionQueries.fetchAllSessions()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllCommandUsageData()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllWorldNames()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllTPSData()); + assertQueryResultIsEqual(db(), backup, ServerQueries.fetchPlanServerInformation()); + assertQueryResultIsEqual(db(), backup, WebUserQueries.fetchAllPlanWebUsers()); + } finally { + backup.close(); + } + } + + @Test + default void testBackupAndRestoreH2() throws Exception { File tempFile = Files.createTempFile(system().getPlanFiles().getDataFolder().toPath(), "backup-", ".db").toFile(); tempFile.deleteOnExit(); H2DB backup = system().getDatabaseSystem().getH2Factory().usingFile(tempFile); backup.setTransactionExecutorServiceProvider(MoreExecutors::newDirectExecutorService); - backup.init(); + try { + backup.init(); - saveAllData(); + saveAllData(); - backup.executeTransaction(new BackupCopyTransaction(db(), backup)); + backup.executeTransaction(new BackupCopyTransaction(db(), backup)); - assertQueryResultIsEqual(db(), backup, BaseUserQueries.fetchAllBaseUsers()); - assertQueryResultIsEqual(db(), backup, UserInfoQueries.fetchAllUserInformation()); - assertQueryResultIsEqual(db(), backup, NicknameQueries.fetchAllNicknameData()); - assertQueryResultIsEqual(db(), backup, GeoInfoQueries.fetchAllGeoInformation()); - assertQueryResultIsEqual(db(), backup, SessionQueries.fetchAllSessions()); - assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllCommandUsageData()); - assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllWorldNames()); - assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllTPSData()); - assertQueryResultIsEqual(db(), backup, ServerQueries.fetchPlanServerInformation()); - assertQueryResultIsEqual(db(), backup, WebUserQueries.fetchAllPlanWebUsers()); + assertQueryResultIsEqual(db(), backup, BaseUserQueries.fetchAllBaseUsers()); + assertQueryResultIsEqual(db(), backup, UserInfoQueries.fetchAllUserInformation()); + assertQueryResultIsEqual(db(), backup, NicknameQueries.fetchAllNicknameData()); + assertQueryResultIsEqual(db(), backup, GeoInfoQueries.fetchAllGeoInformation()); + assertQueryResultIsEqual(db(), backup, SessionQueries.fetchAllSessions()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllCommandUsageData()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllWorldNames()); + assertQueryResultIsEqual(db(), backup, LargeFetchQueries.fetchAllTPSData()); + assertQueryResultIsEqual(db(), backup, ServerQueries.fetchPlanServerInformation()); + assertQueryResultIsEqual(db(), backup, WebUserQueries.fetchAllPlanWebUsers()); + } finally { + backup.close(); + } } default void assertQueryResultIsEqual(Database one, Database two, Query query) { diff --git a/Plan/common/src/test/java/com/djrapitops/plan/system/webserver/JSErrorRegressionTest.java b/Plan/common/src/test/java/com/djrapitops/plan/system/webserver/JSErrorRegressionTest.java index b8154ae76..0c2d7c8bb 100644 --- a/Plan/common/src/test/java/com/djrapitops/plan/system/webserver/JSErrorRegressionTest.java +++ b/Plan/common/src/test/java/com/djrapitops/plan/system/webserver/JSErrorRegressionTest.java @@ -25,9 +25,6 @@ import com.djrapitops.plan.system.PlanSystem; import com.djrapitops.plan.system.database.DBSystem; import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plan.system.settings.paths.WebserverSettings; -import com.djrapitops.plan.system.webserver.cache.PageId; -import com.djrapitops.plan.system.webserver.cache.ResponseCache; -import com.jayway.awaitility.Awaitility; import extension.SeleniumExtension; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; @@ -44,7 +41,6 @@ import utilities.mocks.PluginMockComponent; import java.nio.file.Path; import java.util.UUID; -import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -124,17 +120,6 @@ class JSErrorRegressionTest { @Test void serverPageDoesNotHaveJavascriptErrors(WebDriver driver) { System.out.println("Testing Server Page"); - // Open the page that has refreshing info - driver.get("http://localhost:" + TEST_PORT_NUMBER + "/server"); - assertNo500Error(driver); - - // Wait until Plan caches analysis results - Awaitility.await() - .atMost(10, TimeUnit.SECONDS) - .until(() -> ResponseCache.loadResponse(PageId.SERVER.of(serverUUID)) != null); - - // Open the page with analysis stuff - SeleniumExtension.newTab(driver); driver.get("http://localhost:" + TEST_PORT_NUMBER + "/server"); assertNo500Error(driver); }