From d6e54e6bd72f8cd3dca04fca12e80204d4185937 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Fri, 15 Apr 2022 22:02:56 +0200 Subject: [PATCH] #691 - fixed display of collected import error messages --- .../budgetmaster/services/ImportService.java | 14 +++++++------- .../budgetmaster/settings/SettingsController.java | 4 ++-- .../unit/database/ImportServiceTest.java | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java index c498c5981..f19eed4ba 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java @@ -42,7 +42,6 @@ public class ImportService private InternalDatabase database; - private List<String> collectedErrorMessages; @Autowired public ImportService(CategoryRepository categoryRepository, TransactionRepository transactionRepository, TemplateGroupRepository templateGroupRepository, TemplateRepository templateRepository, @@ -63,7 +62,6 @@ public class ImportService public List<ImportResultItem> importDatabase(InternalDatabase database, AccountMatchList accountMatchList, Boolean importTemplateGroups, Boolean importTemplates, Boolean importCharts) { this.database = database; - this.collectedErrorMessages = new ArrayList<>(); final List<ImportResultItem> importResultItems = new ArrayList<>(); @@ -82,7 +80,7 @@ public class ImportService } else { - importResultItems.add(new ImportResultItem(EntityType.TEMPLATE_GROUP, 0, 0, collectedErrorMessages)); + importResultItems.add(new ImportResultItem(EntityType.TEMPLATE_GROUP, 0, 0, List.of())); } if(importTemplates) @@ -92,7 +90,7 @@ public class ImportService } else { - importResultItems.add(new ImportResultItem(EntityType.TEMPLATE, 0, 0, collectedErrorMessages)); + importResultItems.add(new ImportResultItem(EntityType.TEMPLATE, 0, 0, List.of())); } if(importCharts) @@ -101,7 +99,7 @@ public class ImportService } else { - importResultItems.add(new ImportResultItem(EntityType.CHART, 0, 0, collectedErrorMessages)); + importResultItems.add(new ImportResultItem(EntityType.CHART, 0, 0, List.of())); } LOGGER.debug("Updating repeating transactions..."); @@ -116,8 +114,10 @@ public class ImportService return database; } - public List<String> getCollectedErrorMessages() + public List<String> getCollectedErrorMessages(List<ImportResultItem> importResultItems) { - return collectedErrorMessages; + return importResultItems.stream() + .flatMap(importResultItem -> importResultItem.getCollectedErrorMessages().stream()) + .toList(); } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index 5512a051a..815babc6d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -60,7 +60,7 @@ public class SettingsController extends BaseController public static final String AVAILABLE_ACCOUNTS = "availableAccounts"; public static final String ACCOUNT_MATCH_LIST = "accountMatchList"; public static final String IMPORT_RESULT_ITEMS = "importResultItems"; - public static final String ERROR_MESSAGES = "errorMessage"; + public static final String ERROR_MESSAGES = "errorMessages"; public static final String PERFORM_UPDATE = "performUpdate"; public static final String UPDATE_STRING = "updateString"; public static final String SETTINGS = "settings"; @@ -409,7 +409,7 @@ public class SettingsController extends BaseController final List<ImportResultItem> importResultItems = importService.importDatabase(database, accountMatchList, importTemplateGroups, importTemplates, importCharts); model.addAttribute(ModelAttributes.IMPORT_RESULT_ITEMS, importResultItems); - model.addAttribute(ModelAttributes.ERROR_MESSAGES, importService.getCollectedErrorMessages()); + model.addAttribute(ModelAttributes.ERROR_MESSAGES, importService.getCollectedErrorMessages(importResultItems)); return ReturnValues.IMPORT_DATABASE_RESULT; } diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/ImportServiceTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/ImportServiceTest.java index 7edc422d2..00f4d3f32 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/ImportServiceTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/ImportServiceTest.java @@ -22,6 +22,7 @@ import de.deadlocker8.budgetmaster.repeating.RepeatingOption; import de.deadlocker8.budgetmaster.repeating.RepeatingTransactionUpdater; import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes; import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; +import de.deadlocker8.budgetmaster.services.ImportResultItem; import de.deadlocker8.budgetmaster.services.ImportService; import de.deadlocker8.budgetmaster.tags.Tag; import de.deadlocker8.budgetmaster.tags.TagRepository; @@ -144,7 +145,7 @@ class ImportServiceTest final AccountMatchList accountMatchList = new AccountMatchList(matches); // act - importService.importDatabase(importedDatabase, accountMatchList, true, true, true); + final List<ImportResultItem> importResultItems = importService.importDatabase(importedDatabase, accountMatchList, true, true, true); final InternalDatabase databaseResult = importService.getDatabase(); // assert images @@ -384,7 +385,7 @@ class ImportServiceTest transactionRepeatingTransfer, transactionIncomeWithTags); - assertThat(importService.getCollectedErrorMessages()).isEmpty(); + assertThat(importService.getCollectedErrorMessages(importResultItems)).isEmpty(); } private Icon createIcon(int ID, String builtinIdentifier, String fontColor, Image image) -- GitLab