From 30865aebbd24375c2bfe4e52995b62fef48f344f Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 22 May 2021 22:44:26 +0200 Subject: [PATCH] #598 - removed old parsers --- .../database/DatabaseParser_v3.java | 205 -------------- .../database/legacy/LegacyParser.java | 255 ------------------ .../budgetmaster/database/legacy/Tag.java | 24 -- .../database/legacy/TagMatch.java | 36 --- .../unit/database/DatabaseParser_v3Test.java | 204 -------------- 5 files changed, 724 deletions(-) delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/legacy/Tag.java delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/legacy/TagMatch.java delete mode 100644 src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v3Test.java diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java deleted file mode 100644 index e66c202b7..000000000 --- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java +++ /dev/null @@ -1,205 +0,0 @@ -package de.deadlocker8.budgetmaster.database; - -import com.google.gson.*; -import de.deadlocker8.budgetmaster.accounts.Account; -import de.deadlocker8.budgetmaster.accounts.AccountState; -import de.deadlocker8.budgetmaster.accounts.AccountType; -import de.deadlocker8.budgetmaster.categories.Category; -import de.deadlocker8.budgetmaster.repeating.RepeatingOption; -import de.deadlocker8.budgetmaster.repeating.endoption.*; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifier; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierType; -import de.deadlocker8.budgetmaster.tags.Tag; -import de.deadlocker8.budgetmaster.transactions.Transaction; -import de.thecodelabs.utils.util.Localization; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; - -public class DatabaseParser_v3 -{ - final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); - private final String jsonString; - protected List<Category> categories; - protected List<Account> accounts; - - public DatabaseParser_v3(String json) - { - this.jsonString = json; - } - - public Database parseDatabaseFromJSON() throws IllegalArgumentException - { - JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject(); - categories = parseCategories(root); - accounts = parseAccounts(root); - List<Transaction> transactions = parseTransactions(root); - - return new Database(categories, accounts, transactions, new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); - } - - protected List<Category> parseCategories(JsonObject root) - { - List<Category> parsedCategories = new ArrayList<>(); - JsonArray jsonCategories = root.get("categories").getAsJsonArray(); - for(JsonElement currentCategory : jsonCategories) - { - Category parsedCategory = new Gson().fromJson(currentCategory, Category.class); - parsedCategories.add(parsedCategory); - } - - return parsedCategories; - } - - protected List<Account> parseAccounts(JsonObject root) - { - List<Account> parsedAccounts = new ArrayList<>(); - JsonArray jsonAccounts = root.get("accounts").getAsJsonArray(); - for(JsonElement currentAccount : jsonAccounts) - { - final JsonObject accountObject = currentAccount.getAsJsonObject(); - Integer ID = accountObject.get("ID").getAsInt(); - String name = accountObject.get("name").getAsString(); - AccountType accountType = AccountType.valueOf(accountObject.get("type").getAsString()); - - AccountState accountState = AccountState.FULL_ACCESS; - if(accountObject.has("accountState")) - { - accountState = AccountState.valueOf(accountObject.get("accountState").getAsString()); - } - - Account parsedAccount = new Account(name, accountType, null); - parsedAccount.setID(ID); - parsedAccount.setAccountState(accountState); - - parsedAccounts.add(parsedAccount); - } - - return parsedAccounts; - } - - protected List<Transaction> parseTransactions(JsonObject root) - { - List<Transaction> parsedTransactions = new ArrayList<>(); - JsonArray transactions = root.get("transactions").getAsJsonArray(); - for(JsonElement currentTransaction : transactions) - { - int amount = currentTransaction.getAsJsonObject().get("amount").getAsInt(); - String name = currentTransaction.getAsJsonObject().get("name").getAsString(); - String description = currentTransaction.getAsJsonObject().get("description").getAsString(); - - Transaction transaction = new Transaction(); - transaction.setAmount(amount); - transaction.setName(name); - transaction.setDescription(description); - transaction.setTags(parseTags(currentTransaction.getAsJsonObject())); - - int categoryID = currentTransaction.getAsJsonObject().get("category").getAsJsonObject().get("ID").getAsInt(); - transaction.setCategory(getCategoryByID(categoryID)); - - int accountID = currentTransaction.getAsJsonObject().get("account").getAsJsonObject().get("ID").getAsInt(); - transaction.setAccount(getAccountByID(accountID)); - - JsonElement transferAccount = currentTransaction.getAsJsonObject().get("transferAccount"); - if(transferAccount != null) - { - int transferAccountID = transferAccount.getAsJsonObject().get("ID").getAsInt(); - transaction.setTransferAccount(getAccountByID(transferAccountID)); - } - - String date = currentTransaction.getAsJsonObject().get("date").getAsString(); - DateTime parsedDate = DateTime.parse(date, DateTimeFormat.forPattern("yyyy-MM-dd")); - transaction.setDate(parsedDate); - - transaction.setRepeatingOption(parseRepeatingOption(currentTransaction.getAsJsonObject(), parsedDate)); - - parsedTransactions.add(transaction); - } - - return parsedTransactions; - } - - protected RepeatingOption parseRepeatingOption(JsonObject transaction, DateTime startDate) - { - if(!transaction.has("repeatingOption")) - { - return null; - } - - JsonObject option = transaction.get("repeatingOption").getAsJsonObject(); - - JsonObject repeatingModifier = option.get("modifier").getAsJsonObject(); - String repeatingModifierType = repeatingModifier.get("localizationKey").getAsString(); - - RepeatingModifierType type = RepeatingModifierType.getByLocalization(Localization.getString(repeatingModifierType)); - RepeatingModifier modifier = RepeatingModifier.fromModifierType(type, repeatingModifier.get("quantity").getAsInt()); - - JsonObject repeatingEnd = option.get("endOption").getAsJsonObject(); - String repeatingEndType = repeatingEnd.get("localizationKey").getAsString(); - - RepeatingEnd endOption = null; - RepeatingEndType endType = RepeatingEndType.getByLocalization(Localization.getString(repeatingEndType)); - switch(endType) - { - case NEVER: - endOption = new RepeatingEndNever(); - break; - case AFTER_X_TIMES: - endOption = new RepeatingEndAfterXTimes(repeatingEnd.get("times").getAsInt()); - break; - case DATE: - DateTime endDate = DateTime.parse(repeatingEnd.get("endDate").getAsString(), DateTimeFormat.forPattern("yyyy-MM-dd")); - endOption = new RepeatingEndDate(endDate); - break; - } - - RepeatingOption repeatingOption = new RepeatingOption(); - repeatingOption.setStartDate(startDate); - repeatingOption.setEndOption(endOption); - repeatingOption.setModifier(modifier); - - return repeatingOption; - } - - protected List<Tag> parseTags(JsonObject transaction) - { - List<Tag> parsedTags = new ArrayList<>(); - JsonArray tags = transaction.get("tags").getAsJsonArray(); - for(JsonElement currentTag : tags) - { - parsedTags.add(new Gson().fromJson(currentTag, Tag.class)); - } - - return parsedTags; - } - - protected Category getCategoryByID(int ID) - { - for(Category category : categories) - { - if(category.getID() == ID) - { - return category; - } - } - - return null; - } - - protected Account getAccountByID(int ID) - { - for(Account account : accounts) - { - if(account.getID() == ID) - { - return account; - } - } - - return null; - } -} \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java deleted file mode 100644 index 372c8ccd3..000000000 --- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/LegacyParser.java +++ /dev/null @@ -1,255 +0,0 @@ -package de.deadlocker8.budgetmaster.database.legacy; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import de.deadlocker8.budgetmaster.database.Database; -import de.deadlocker8.budgetmaster.accounts.Account; -import de.deadlocker8.budgetmaster.accounts.AccountType; -import de.deadlocker8.budgetmaster.categories.Category; -import de.deadlocker8.budgetmaster.categories.CategoryType; -import de.deadlocker8.budgetmaster.transactions.Transaction; -import de.deadlocker8.budgetmaster.repeating.RepeatingOption; -import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate; -import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierMonths; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -@SuppressWarnings("deprecation") -public class LegacyParser -{ - private final String DATE_FORMAT = "yyyy-MM-dd"; - - private Account account; - private String jsonString; - private List<Category> categories; - private List<Tag> tags; - private List<TagMatch> tagMatches; - private Category categoryNone; - - public LegacyParser(String json, Category categoryNone) - { - this.jsonString = json; - this.account = new Account("LEGACY_IMPORT", AccountType.CUSTOM); - this.categoryNone = categoryNone; - } - - public Database parseDatabaseFromJSON() - { - JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject(); - categories = new ArrayList<>(parseCategories(root)); - tags = parseTags(root); - tagMatches = parseTagMatches(root); - List<Transaction> transactions = parsePayments(root); - - List<Account> accounts = new ArrayList<>(); - accounts.add(account); - - return new Database(categories, accounts, transactions, new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); - } - - private Set<Category> parseCategories(JsonObject root) - { - Set<Category> parsedCategories = new HashSet<>(); - JsonArray jsonCategories = root.get("categories").getAsJsonArray(); - for(JsonElement currentCategory : jsonCategories) - { - int ID = currentCategory.getAsJsonObject().get("ID").getAsInt(); - String name = currentCategory.getAsJsonObject().get("name").getAsString(); - String color = currentCategory.getAsJsonObject().get("color").getAsString(); - - if(name.equals("NONE") || name.equals("Übertrag")|| name.equals("Rest")) - { - continue; - } - - Category category = new Category(name, color, CategoryType.CUSTOM); - category.setID(ID); - parsedCategories.add(category); - } - - return parsedCategories; - } - - private List<Tag> parseTags(JsonObject root) - { - List<Tag> parsedTags = new ArrayList<>(); - JsonArray jsonTags = root.get("tags").getAsJsonArray(); - for(JsonElement currentTag : jsonTags) - { - int ID = currentTag.getAsJsonObject().get("ID").getAsInt(); - String name = currentTag.getAsJsonObject().get("name").getAsString(); - - parsedTags.add(new Tag(ID, name)); - } - - return parsedTags; - } - - private List<TagMatch> parseTagMatches(JsonObject root) - { - List<TagMatch> parsedTagMatches = new ArrayList<>(); - JsonArray jsonTagMatches = root.get("tagMatches").getAsJsonArray(); - for(JsonElement currentTagMatch : jsonTagMatches) - { - int tagID = currentTagMatch.getAsJsonObject().get("tagID").getAsInt(); - int paymentID = currentTagMatch.getAsJsonObject().get("paymentID").getAsInt(); - int repeatingPaymentID = currentTagMatch.getAsJsonObject().get("repeatingPaymentID").getAsInt(); - - parsedTagMatches.add(new TagMatch(getTagByID(tagID).getName(), paymentID, repeatingPaymentID)); - } - - return parsedTagMatches; - } - - private List<Transaction> parsePayments(JsonObject root) - { - List<Transaction> parsedTransactions = new ArrayList<>(); - parsedTransactions.addAll(parseNormalPayments(root)); - parsedTransactions.addAll(parseRepeatingPayments(root)); - - return parsedTransactions; - } - - private List<Transaction> parseNormalPayments(JsonObject root) - { - List<Transaction> parsedTransactions = new ArrayList<>(); - JsonArray payments = root.get("normalPayments").getAsJsonArray(); - for(JsonElement currentPayment : payments) - { - int ID = currentPayment.getAsJsonObject().get("ID").getAsInt(); - int amount = currentPayment.getAsJsonObject().get("amount").getAsInt(); - String date = currentPayment.getAsJsonObject().get("date").getAsString(); - int categoryID = currentPayment.getAsJsonObject().get("categoryID").getAsInt(); - String name = currentPayment.getAsJsonObject().get("name").getAsString(); - String description = currentPayment.getAsJsonObject().get("description").getAsString(); - - Transaction transaction = new Transaction(); - transaction.setAmount(amount); - transaction.setName(name); - transaction.setDescription(description); - transaction.setCategory(getCategoryByID(categoryID)); - transaction.setAccount(account); - transaction.setRepeatingOption(null); - transaction.setTags(getTagsByPaymentID(ID)); - - DateTime parsedDate = DateTime.parse(date, DateTimeFormat.forPattern(DATE_FORMAT)); - transaction.setDate(parsedDate); - - parsedTransactions.add(transaction); - } - - return parsedTransactions; - } - - private List<Transaction> parseRepeatingPayments(JsonObject root) - { - List<Transaction> parsedTransactions = new ArrayList<>(); - JsonArray payments = root.get("repeatingPayments").getAsJsonArray(); - for(JsonElement currentPayment : payments) - { - int ID = currentPayment.getAsJsonObject().get("ID").getAsInt(); - int amount = currentPayment.getAsJsonObject().get("amount").getAsInt(); - String date = currentPayment.getAsJsonObject().get("date").getAsString(); - int categoryID = currentPayment.getAsJsonObject().get("categoryID").getAsInt(); - String name = currentPayment.getAsJsonObject().get("name").getAsString(); - String description = currentPayment.getAsJsonObject().get("description").getAsString(); - - Transaction transaction = new Transaction(); - transaction.setAmount(amount); - transaction.setName(name); - transaction.setDescription(description); - transaction.setCategory(getCategoryByID(categoryID)); - transaction.setTags(getTagsByPaymentID(ID)); - transaction.setAccount(account); - - DateTime parsedDate = DateTime.parse(date, DateTimeFormat.forPattern(DATE_FORMAT)); - transaction.setDate(parsedDate); - - transaction.setRepeatingOption(parseRepeatingOption(currentPayment.getAsJsonObject(), parsedDate)); - - parsedTransactions.add(transaction); - } - - return parsedTransactions; - } - - private RepeatingOption parseRepeatingOption(JsonObject repeatingPayment, DateTime startDate) - { - RepeatingOption repeatingOption = new RepeatingOption(); - repeatingOption.setStartDate(startDate); - - // end option - if(repeatingPayment.has("repeatEndDate")) - { - String repeatEndDate = repeatingPayment.get("repeatEndDate").getAsString(); - repeatingOption.setEndOption(new RepeatingEndDate(DateTime.parse(repeatEndDate, DateTimeFormat.forPattern(DATE_FORMAT)))); - } - else - { - repeatingOption.setEndOption(new RepeatingEndNever()); - } - - // modifier - int repeatMonthDay = repeatingPayment.get("repeatMonthDay").getAsInt(); - if(repeatMonthDay == 0) - { - int repeatInterval = repeatingPayment.get("repeatInterval").getAsInt(); - repeatingOption.setModifier(new RepeatingModifierDays(repeatInterval)); - } - else - { - repeatingOption.setModifier(new RepeatingModifierMonths(1)); - } - - return repeatingOption; - } - - private Category getCategoryByID(int ID) - { - for(Category category : categories) - { - if(category.getID() == ID) - { - return category; - } - } - - return categoryNone; - } - - private Tag getTagByID(int ID) - { - for(Tag tag : tags) - { - if(tag.getID() == ID) - { - return tag; - } - } - - return null; - } - - private List<de.deadlocker8.budgetmaster.tags.Tag> getTagsByPaymentID(int paymentID) - { - List<de.deadlocker8.budgetmaster.tags.Tag> paymentTags = new ArrayList<>(); - for(TagMatch tagMatch : tagMatches) - { - if(tagMatch.getPaymentID() == paymentID) - { - paymentTags.add(new de.deadlocker8.budgetmaster.tags.Tag(tagMatch.getTagName())); - } - } - - return paymentTags; - } -} \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/Tag.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/Tag.java deleted file mode 100644 index f33369198..000000000 --- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/Tag.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.deadlocker8.budgetmaster.database.legacy; - -@Deprecated -public class Tag -{ - private int ID; - private String name; - - public Tag(int ID, String name) - { - this.ID = ID; - this.name = name; - } - - public int getID() - { - return ID; - } - - public String getName() - { - return name; - } -} \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/TagMatch.java b/src/main/java/de/deadlocker8/budgetmaster/database/legacy/TagMatch.java deleted file mode 100644 index 516e4848c..000000000 --- a/src/main/java/de/deadlocker8/budgetmaster/database/legacy/TagMatch.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.deadlocker8.budgetmaster.database.legacy; - -@Deprecated -public class TagMatch -{ - private String tagName; - private int paymentID; - private int repeatingPaymentID; - - public TagMatch(String tagName, int paymentID, int repeatingPaymentID) - { - this.tagName = tagName; - this.paymentID = paymentID; - this.repeatingPaymentID = repeatingPaymentID; - } - - public String getTagName() - { - return tagName; - } - - public void setTagName(String tagName) - { - this.tagName = tagName; - } - - public int getPaymentID() - { - return paymentID; - } - - public int getRepeatingPaymentID() - { - return repeatingPaymentID; - } -} \ No newline at end of file diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v3Test.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v3Test.java deleted file mode 100644 index 8c95337e1..000000000 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParser_v3Test.java +++ /dev/null @@ -1,204 +0,0 @@ -package de.deadlocker8.budgetmaster.unit.database; - -import de.deadlocker8.budgetmaster.accounts.Account; -import de.deadlocker8.budgetmaster.accounts.AccountType; -import de.deadlocker8.budgetmaster.categories.Category; -import de.deadlocker8.budgetmaster.categories.CategoryType; -import de.deadlocker8.budgetmaster.database.Database; -import de.deadlocker8.budgetmaster.database.DatabaseParser_v3; -import de.deadlocker8.budgetmaster.repeating.RepeatingOption; -import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; -import de.deadlocker8.budgetmaster.tags.Tag; -import de.deadlocker8.budgetmaster.transactions.Transaction; -import de.thecodelabs.utils.util.Localization; -import de.thecodelabs.utils.util.Localization.LocalizationDelegate; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; -import org.junit.Before; -import org.junit.Test; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DatabaseParser_v3Test -{ - @Before - public void before() - { - Localization.setDelegate(new LocalizationDelegate() - { - @Override - public Locale getLocale() - { - return Locale.ENGLISH; - } - - @Override - public String getBaseResource() - { - return "languages/base"; - } - }); - Localization.load(); - } - - @Test - public void test_Categories() - { - try - { - String json = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("DatabaseParser_v3Test.json").toURI()))); - DatabaseParser_v3 importer = new DatabaseParser_v3(json); - Database database = importer.parseDatabaseFromJSON(); - - final Category categoryNone = new Category("Keine Kategorie", "#FFFFFF", CategoryType.NONE); - categoryNone.setID(1); - - final Category categoryRest = new Category("Übertrag", "#FFFF00", CategoryType.REST); - categoryRest.setID(2); - - final Category category3 = new Category("0815", "#ffcc00", CategoryType.CUSTOM); - category3.setID(3); - - assertThat(database.getCategories()).hasSize(3) - .containsExactlyInAnyOrder(categoryNone, categoryRest, category3); - } - catch(IOException | URISyntaxException e) - { - e.printStackTrace(); - } - } - - @Test - public void test_Accounts() - { - try - { - String json = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("DatabaseParser_v3Test.json").toURI()))); - DatabaseParser_v3 importer = new DatabaseParser_v3(json); - Database database = importer.parseDatabaseFromJSON(); - - final Account expectedAccount1 = new Account("Placeholder", AccountType.ALL); - expectedAccount1.setID(1); - - final Account expectedAccount2 = new Account("Default", AccountType.CUSTOM); - expectedAccount2.setID(2); - - final Account expectedAccount3 = new Account("Second Account", AccountType.CUSTOM); - expectedAccount3.setID(3); - - assertThat(database.getAccounts()).hasSize(3) - .containsExactlyInAnyOrder(expectedAccount1, expectedAccount2, expectedAccount3); - } - catch(IOException | URISyntaxException e) - { - e.printStackTrace(); - } - } - - @Test - public void test_Transactions() - { - try - { - String json = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("DatabaseParser_v3Test.json").toURI()))); - DatabaseParser_v3 importer = new DatabaseParser_v3(json); - Database database = importer.parseDatabaseFromJSON(); - - Account account1 = new Account("Default", AccountType.CUSTOM); - account1.setID(2); - - Account account2 = new Account("Second Account", AccountType.CUSTOM); - account2.setID(3); - - Category categoryNone = new Category("Keine Kategorie", "#FFFFFF", CategoryType.NONE); - categoryNone.setID(1); - - Category category3 = new Category("0815", "#ffcc00", CategoryType.CUSTOM); - category3.setID(3); - - Transaction normalTransaction_1 = new Transaction(); - normalTransaction_1.setAmount(35000); - normalTransaction_1.setDate(DateTime.parse("2018-03-13", DateTimeFormat.forPattern("yyyy-MM-dd"))); - normalTransaction_1.setCategory(categoryNone); - normalTransaction_1.setName("Income"); - normalTransaction_1.setDescription("Lorem Ipsum"); - normalTransaction_1.setTags(new ArrayList<>()); - normalTransaction_1.setAccount(account1); - - Transaction normalTransaction_2 = new Transaction(); - normalTransaction_2.setAmount(-2000); - normalTransaction_2.setDate(DateTime.parse("2018-06-15", DateTimeFormat.forPattern("yyyy-MM-dd"))); - normalTransaction_2.setName("Simple"); - normalTransaction_2.setDescription(""); - normalTransaction_2.setAccount(account2); - normalTransaction_2.setCategory(category3); - - List<Tag> tags = new ArrayList<>(); - Tag tag = new Tag("0815"); - tag.setID(1); - tags.add(tag); - normalTransaction_2.setTags(tags); - - Transaction repeatingTransaction_1 = new Transaction(); - repeatingTransaction_1.setAmount(-12300); - DateTime repeatingTransactionDate_1 = DateTime.parse("2018-03-13", DateTimeFormat.forPattern("yyyy-MM-dd")); - repeatingTransaction_1.setDate(repeatingTransactionDate_1); - repeatingTransaction_1.setCategory(categoryNone); - repeatingTransaction_1.setName("Test"); - repeatingTransaction_1.setDescription(""); - repeatingTransaction_1.setAccount(account1); - RepeatingOption repeatingOption_1 = new RepeatingOption(); - repeatingOption_1.setModifier(new RepeatingModifierDays(10)); - repeatingOption_1.setStartDate(repeatingTransactionDate_1); - repeatingOption_1.setEndOption(new RepeatingEndAfterXTimes(2)); - repeatingTransaction_1.setRepeatingOption(repeatingOption_1); - repeatingTransaction_1.setTags(new ArrayList<>()); - - Transaction repeatingTransaction_2 = new Transaction(); - repeatingTransaction_2.setAmount(-12300); - DateTime repeatingTransactionDate_2 = DateTime.parse("2018-03-23", DateTimeFormat.forPattern("yyyy-MM-dd")); - repeatingTransaction_2.setDate(repeatingTransactionDate_2); - repeatingTransaction_2.setCategory(categoryNone); - repeatingTransaction_2.setName("Test"); - repeatingTransaction_2.setDescription(""); - repeatingTransaction_2.setAccount(account1); - RepeatingOption repeatingOption_2 = new RepeatingOption(); - repeatingOption_2.setModifier(new RepeatingModifierDays(10)); - repeatingOption_2.setStartDate(repeatingTransactionDate_2); - repeatingOption_2.setEndOption(new RepeatingEndAfterXTimes(2)); - repeatingTransaction_2.setRepeatingOption(repeatingOption_2); - repeatingTransaction_2.setTags(new ArrayList<>()); - - Transaction transferTransaction = new Transaction(); - transferTransaction.setAmount(-250); - transferTransaction.setDate(DateTime.parse("2018-06-15", DateTimeFormat.forPattern("yyyy-MM-dd"))); - transferTransaction.setName("Transfer"); - transferTransaction.setDescription(""); - transferTransaction.setAccount(account2); - transferTransaction.setTransferAccount(account1); - transferTransaction.setCategory(category3); - transferTransaction.setTags(new ArrayList<>()); - - assertThat(database.getTransactions()).hasSize(6) - .contains(normalTransaction_1, - normalTransaction_2, - repeatingTransaction_1, - repeatingTransaction_2, - transferTransaction); - - } - catch(IOException | URISyntaxException e) - { - e.printStackTrace(); - } - } -} -- GitLab