From 55d8118f852aeea8928f8461bbad0835d0307e32 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 30 Oct 2021 17:28:32 +0200 Subject: [PATCH] added test for database import with recurring transfers --- .../unit/database/DatabaseParser_v7Test.java | 25 +++++++++++++++-- src/test/resources/DatabaseParser_v7Test.json | 28 ++++++++++++++++++- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7Test.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7Test.java index d238edb7e..50f487234 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7Test.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v7Test.java @@ -191,11 +191,32 @@ class DatabaseParser_v7Test transferTransaction.setTags(new ArrayList<>()); transferTransaction.setExpenditure(true); - assertThat(database.getTransactions()).hasSize(4) + BackupTransaction_v6 repeatingTransferTransaction = new BackupTransaction_v6(); + repeatingTransferTransaction.setAmount(-6000); + String repeatingTransferTransaction_Date = "2018-03-15"; + repeatingTransferTransaction.setDate(repeatingTransferTransaction_Date); + repeatingTransferTransaction.setCategoryID(1); + repeatingTransferTransaction.setName("repeat my transfer"); + repeatingTransferTransaction.setDescription(""); + repeatingTransferTransaction.setAccountID(2); + BackupRepeatingOption_v4 repeatingOption_2 = new BackupRepeatingOption_v4(); + repeatingOption_2.setModifier(new BackupRepeatingModifier_v4(10, new RepeatingModifierDays(10).getLocalizationKey())); + repeatingOption_2.setStartDate(repeatingTransferTransaction_Date); + BackupRepeatingEndOption_v4 endOption_2 = new BackupRepeatingEndOption_v4(); + endOption_2.setTimes(2); + endOption_2.setLocalizationKey(new RepeatingEndAfterXTimes(2).getLocalizationKey()); + repeatingOption_2.setEndOption(endOption_2); + repeatingTransferTransaction.setRepeatingOption(repeatingOption_2); + repeatingTransferTransaction.setTags(new ArrayList<>()); + repeatingTransferTransaction.setExpenditure(true); + repeatingTransferTransaction.setTransferAccountID(2); + + assertThat(database.getTransactions()).hasSize(5) .contains(normalTransaction_1, normalTransaction_2, repeatingTransaction_1, - transferTransaction); + transferTransaction, + repeatingTransferTransaction); } @Test diff --git a/src/test/resources/DatabaseParser_v7Test.json b/src/test/resources/DatabaseParser_v7Test.json index 679008d01..23eea11d3 100644 --- a/src/test/resources/DatabaseParser_v7Test.json +++ b/src/test/resources/DatabaseParser_v7Test.json @@ -1,6 +1,6 @@ { "TYPE": "BUDGETMASTER_DATABASE", - "VERSION": 6, + "VERSION": 7, "categories": [ { "ID": 1, @@ -107,6 +107,32 @@ "description": "", "tags": [], "transferAccountID": 2 + }, + { + "ID": 17, + "amount": -6000, + "isExpenditure": true, + "date": "2018-03-15", + "accountID": 2, + "categoryID": 1, + "name": "repeat my transfer", + "description": "", + "tags": [], + "transferAccountID": 2, + "repeatingOption": { + "ID": 3, + "startDate": "2018-03-15", + "modifier": { + "ID": 3, + "quantity": 10, + "localizationKey": "repeating.modifier.days" + }, + "endOption": { + "times": 2, + "ID": 3, + "localizationKey": "repeating.end.key.afterXTimes" + } + } } ], "templates": [ -- GitLab