From 57e6c4a1f2bfec9e61a83054baa1fc651f0658bd Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 23 May 2021 16:01:58 +0200 Subject: [PATCH] #598 - use v6 models for json export --- .../budgetmaster/database/DatabaseService.java | 7 ++++--- .../database/model/v6/BackupDatabase_v6.java | 18 +++++++++--------- .../settings/SettingsController.java | 6 +++--- .../unit/backup/LocalGitBackupTaskTest.java | 10 +++++----- .../unit/backup/RemoteGitBackupTaskTest.java | 6 +++--- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java index c2a6bbc8c..d6f74c31c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java @@ -10,6 +10,7 @@ import de.deadlocker8.budgetmaster.charts.Chart; import de.deadlocker8.budgetmaster.charts.ChartService; import de.deadlocker8.budgetmaster.charts.ChartType; import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5; +import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6; import de.deadlocker8.budgetmaster.images.Image; import de.deadlocker8.budgetmaster.images.ImageService; import de.deadlocker8.budgetmaster.repeating.RepeatingOption; @@ -217,7 +218,7 @@ public class DatabaseService @Transactional public void exportDatabase(Path backupPath) { - final BackupDatabase_v5 database = getDatabaseForJsonSerialization(); + final BackupDatabase_v6 database = getDatabaseForJsonSerialization(); try(Writer writer = new FileWriter(backupPath.toString())) { @@ -242,7 +243,7 @@ public class DatabaseService return "BudgetMasterDatabase_" + DateTime.now().toString(formatString) + ".json"; } - public BackupDatabase_v5 getDatabaseForJsonSerialization() + public BackupDatabase_v6 getDatabaseForJsonSerialization() { List<Category> categories = categoryService.getAllEntitiesAsc(); List<Account> accounts = accountService.getRepository().findAll(); @@ -256,7 +257,7 @@ public class DatabaseService InternalDatabase database = new InternalDatabase(categories, accounts, filteredTransactions, templates, charts, images); LOGGER.debug(MessageFormat.format("Created database for JSON with {0} transactions, {1} categories, {2} accounts, {3} templates, {4} charts and {5} images", database.getTransactions().size(), database.getCategories().size(), database.getAccounts().size(), database.getTemplates().size(), database.getCharts().size(), database.getImages())); - BackupDatabase_v5 databaseInExternalForm = BackupDatabase_v5.createFromInternalEntities(database); + BackupDatabase_v6 databaseInExternalForm = BackupDatabase_v6.createFromInternalEntities(database); LOGGER.debug("Converted database to external form"); return databaseInExternalForm; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java index 30dcf3b65..6ce3d66c3 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java @@ -6,10 +6,10 @@ import de.deadlocker8.budgetmaster.charts.Chart; import de.deadlocker8.budgetmaster.database.InternalDatabase; import de.deadlocker8.budgetmaster.database.JSONIdentifier; import de.deadlocker8.budgetmaster.database.model.BackupDatabase; +import de.deadlocker8.budgetmaster.database.model.converter.*; import de.deadlocker8.budgetmaster.database.model.v5.BackupCategory_v5; import de.deadlocker8.budgetmaster.database.model.v5.BackupChart_v5; import de.deadlocker8.budgetmaster.database.model.v5.BackupImage_v5; -import de.deadlocker8.budgetmaster.database.model.converter.*; import de.deadlocker8.budgetmaster.images.Image; import de.deadlocker8.budgetmaster.templates.Template; import de.deadlocker8.budgetmaster.transactions.Transaction; @@ -133,14 +133,14 @@ public class BackupDatabase_v6 implements BackupDatabase public static BackupDatabase_v6 createFromInternalEntities(InternalDatabase database) { final BackupDatabase_v6 externalDatabase = new BackupDatabase_v6(); -// -// externalDatabase.setCategories(externalDatabase.convertItemsToExternal(database.getCategories(), new CategoryConverter_v5())); -// externalDatabase.setAccounts(externalDatabase.convertItemsToExternal(database.getAccounts(), new AccountConverter_v5())); -// externalDatabase.setTransactions(externalDatabase.convertItemsToExternal(database.getTransactions(), new TransactionConverter_v5())); -// externalDatabase.setTemplates(externalDatabase.convertItemsToExternal(database.getTemplates(), new TemplateConverter_v5())); -// externalDatabase.setCharts(externalDatabase.convertItemsToExternal(database.getCharts(), new ChartConverter_v5())); -// externalDatabase.setImages(externalDatabase.convertItemsToExternal(database.getImages(), new ImageConverter_v5())); -// + + externalDatabase.setCategories(externalDatabase.convertItemsToExternal(database.getCategories(), new CategoryConverter())); + externalDatabase.setAccounts(externalDatabase.convertItemsToExternal(database.getAccounts(), new AccountConverter(null))); + externalDatabase.setTransactions(externalDatabase.convertItemsToExternal(database.getTransactions(), new TransactionConverter(null, null))); + externalDatabase.setTemplates(externalDatabase.convertItemsToExternal(database.getTemplates(), new TemplateConverter(null, null, null))); + externalDatabase.setCharts(externalDatabase.convertItemsToExternal(database.getCharts(), new ChartConverter())); + externalDatabase.setImages(externalDatabase.convertItemsToExternal(database.getImages(), new ImageConverter())); + return externalDatabase; } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index 58eb43792..33440497e 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -6,11 +6,11 @@ import de.deadlocker8.budgetmaster.accounts.AccountService; import de.deadlocker8.budgetmaster.backup.*; import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.controller.BaseController; -import de.deadlocker8.budgetmaster.database.InternalDatabase; import de.deadlocker8.budgetmaster.database.DatabaseParser; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.database.InternalDatabase; import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList; -import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5; +import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6; import de.deadlocker8.budgetmaster.services.ImportResultItem; import de.deadlocker8.budgetmaster.services.ImportService; import de.deadlocker8.budgetmaster.services.UpdateCheckService; @@ -219,7 +219,7 @@ public class SettingsController extends BaseController { LOGGER.debug("Exporting database..."); - final BackupDatabase_v5 databaseForJsonSerialization = databaseService.getDatabaseForJsonSerialization(); + final BackupDatabase_v6 databaseForJsonSerialization = databaseService.getDatabaseForJsonSerialization(); String data = DatabaseService.GSON.toJson(databaseForJsonSerialization); byte[] dataBytes = data.getBytes(StandardCharsets.UTF_8); diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/backup/LocalGitBackupTaskTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/backup/LocalGitBackupTaskTest.java index 58f0859f8..8699ea20c 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/backup/LocalGitBackupTaskTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/backup/LocalGitBackupTaskTest.java @@ -7,7 +7,7 @@ import de.deadlocker8.budgetmaster.backup.LocalGitBackupTask; import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.database.DatabaseService; import de.deadlocker8.budgetmaster.database.model.v5.BackupCategory_v5; -import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5; +import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6; import de.deadlocker8.budgetmaster.settings.Settings; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.unit.helpers.Helpers; @@ -103,7 +103,7 @@ public class LocalGitBackupTaskTest final Path repositoryFolder = tempFolder.newFolder().toPath().resolve(".git"); - final BackupDatabase_v5 database = new BackupDatabase_v5(); + final BackupDatabase_v6 database = new BackupDatabase_v6(); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(database); Mockito.doCallRealMethod().when(databaseService).exportDatabase(Mockito.any()); @@ -131,7 +131,7 @@ public class LocalGitBackupTaskTest final Path repositoryFolder = tempFolder.newFolder().toPath().resolve(".git"); - final BackupDatabase_v5 database = new BackupDatabase_v5(); + final BackupDatabase_v6 database = new BackupDatabase_v6(); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(database); Mockito.doCallRealMethod().when(databaseService).exportDatabase(Mockito.any()); @@ -155,7 +155,7 @@ public class LocalGitBackupTaskTest final Path repositoryFolder = tempFolder.newFolder().toPath().resolve(".git"); - final BackupDatabase_v5 database = new BackupDatabase_v5(); + final BackupDatabase_v6 database = new BackupDatabase_v6(); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(database); Mockito.doCallRealMethod().when(databaseService).exportDatabase(Mockito.any()); @@ -163,7 +163,7 @@ public class LocalGitBackupTaskTest localGitBackupTask.setGitFolder(repositoryFolder); localGitBackupTask.run(); - final BackupDatabase_v5 databaseModified = new BackupDatabase_v5(List.of(new BackupCategory_v5(5, "myCategory", "#FF0000", CategoryType.CUSTOM, null)), List.of(), List.of(), List.of(), List.of(), List.of()); + final BackupDatabase_v6 databaseModified = new BackupDatabase_v6(List.of(new BackupCategory_v5(5, "myCategory", "#FF0000", CategoryType.CUSTOM, null)), List.of(), List.of(), List.of(), List.of(), List.of()); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(databaseModified); localGitBackupTask.run(); diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/backup/RemoteGitBackupTaskTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/backup/RemoteGitBackupTaskTest.java index 2af26eb74..5b7cdedf9 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/backup/RemoteGitBackupTaskTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/backup/RemoteGitBackupTaskTest.java @@ -7,7 +7,7 @@ import de.deadlocker8.budgetmaster.backup.RemoteGitBackupTask; import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.database.DatabaseService; import de.deadlocker8.budgetmaster.database.model.v5.BackupCategory_v5; -import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5; +import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6; import de.deadlocker8.budgetmaster.settings.Settings; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.unit.helpers.Helpers; @@ -217,7 +217,7 @@ public class RemoteGitBackupTaskTest final RemoteGitBackupTask remoteGitBackupTask = createBackupTask(repositoryFolder, fakeServerFolder); remoteGitBackupTask.run(); - final BackupDatabase_v5 databaseModified = new BackupDatabase_v5(List.of(new BackupCategory_v5(5, "myCategory", "#FF0000", CategoryType.CUSTOM, null)), List.of(), List.of(), List.of(), List.of(), List.of()); + final BackupDatabase_v6 databaseModified = new BackupDatabase_v6(List.of(new BackupCategory_v5(5, "myCategory", "#FF0000", CategoryType.CUSTOM, null)), List.of(), List.of(), List.of(), List.of(), List.of()); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(databaseModified); remoteGitBackupTask.run(); @@ -257,7 +257,7 @@ public class RemoteGitBackupTaskTest settings.setAutoBackupGitToken("0815"); Mockito.when(settingsService.getSettings()).thenReturn(settings); - final BackupDatabase_v5 database = new BackupDatabase_v5(); + final BackupDatabase_v6 database = new BackupDatabase_v6(); Mockito.when(databaseService.getDatabaseForJsonSerialization()).thenReturn(database); Mockito.doCallRealMethod().when(databaseService).exportDatabase(Mockito.any()); -- GitLab