diff --git a/tests/de/deadlocker8/budgetmaster/tests/resources/export.json b/tests/de/deadlocker8/budgetmaster/tests/resources/export.json new file mode 100644 index 0000000000000000000000000000000000000000..891fd819f7e706e6c1f25a47076dafdba1d06fea --- /dev/null +++ b/tests/de/deadlocker8/budgetmaster/tests/resources/export.json @@ -0,0 +1 @@ +{ "categories": [ { "ID": 1, "name": "NONE", "color": { "red": 1.0, "green": 1.0, "blue": 1.0, "opacity": 1.0 } }, { "ID": 2, "name": "Übertrag", "color": { "red": 1.0, "green": 1.0, "blue": 0.0, "opacity": 1.0 } }, { "ID": 3, "name": "123 Tü+?est Category", "color": { "red": 0.9411765, "green": 0.972549, "blue": 1.0, "opacity": 1.0 } } ], "normalPayments": [ { "ID": 1, "amount": 23, "date": "2017-06-02", "categoryID": 0, "name": "Test Normal", "description": "Lorem Ipsum" } ], "repeatingPayments": [ { "repeatInterval": 7, "repeatEndDate": "2017-06-30", "repeatMonthDay": 0, "ID": 3, "amount": -10012, "date": "2017-06-01", "categoryID": 1, "name": "Test Repeating", "description": "Lorem Ipsum" } ]} \ No newline at end of file diff --git a/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseHandlerTest.java b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseHandlerTest.java index 138ca8a250ccf7627e9a76fbaf0e45d7c5454a58..55f27edd0d5ff22be3426c1efd9fa458a60c9a35 100644 --- a/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseHandlerTest.java +++ b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseHandlerTest.java @@ -30,6 +30,7 @@ public class DatabaseHandlerTest { //init Settings settings = Utils.loadSettings(); + System.out.println(settings); DatabaseHandler handler = new DatabaseHandler(settings); handler.deleteDatabase(); handler = new DatabaseHandler(settings); diff --git a/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportTest.java b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e07bcf7b99d8bd4f9eaedbfe4cee0ca302d4f94b --- /dev/null +++ b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportTest.java @@ -0,0 +1,93 @@ +package de.deadlocker8.budgetmaster.tests.server.database; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Paths; +import java.util.ArrayList; + +import org.junit.BeforeClass; +import org.junit.Test; + +import de.deadlocker8.budgetmaster.logic.Category; +import de.deadlocker8.budgetmaster.logic.NormalPayment; +import de.deadlocker8.budgetmaster.logic.RepeatingPayment; +import de.deadlocker8.budgetmasterserver.logic.Database; +import de.deadlocker8.budgetmasterserver.logic.DatabaseHandler; +import de.deadlocker8.budgetmasterserver.logic.DatabaseImporter; +import de.deadlocker8.budgetmasterserver.logic.Settings; +import de.deadlocker8.budgetmasterserver.logic.Utils; +import javafx.scene.paint.Color; + +public class DatabaseImportTest +{ + private static DatabaseHandler databaseHandler; + + @BeforeClass + public static void init() + { + try + { + //init + Settings settings = Utils.loadSettings(); + DatabaseHandler handler = new DatabaseHandler(settings); + handler.deleteDatabase(); + handler = new DatabaseHandler(settings); + databaseHandler = handler; + } + catch(IOException | URISyntaxException e) + { + fail(e.getMessage()); + } + } + + @Test + public void testImport() + { + try + { + File file = Paths.get("tests/de/deadlocker8/budgetmaster/tests/resources/export.json").toFile(); + Database database = de.deadlocker8.budgetmaster.logic.Utils.loadDatabaseJSON(file); + + DatabaseImporter importer = new DatabaseImporter(databaseHandler); + importer.importDatabase(database); + + //test category + Category expectedCategory = new Category(3, "123 Tü+?est Category", Color.ALICEBLUE); + ArrayList<Category> categories = databaseHandler.getCategories(); + + Category category = databaseHandler.getCategory(categories.get(categories.size()-1).getID()); + assertEquals(expectedCategory.getName(), category.getName()); + assertEquals(expectedCategory.getColor(), category.getColor()); + + //test normal payment + NormalPayment expectedPayment = new NormalPayment(1, 23, "2017-06-02", 0, "Test Normal", "Lorem Ipsum"); + NormalPayment payment = databaseHandler.getPayment(1); + assertEquals(expectedPayment.getAmount(), payment.getAmount()); + assertEquals(expectedPayment.getDate(), payment.getDate()); + assertEquals(expectedPayment.getCategoryID(), payment.getCategoryID()); + assertEquals(expectedPayment.getName(), payment.getName()); + assertEquals(expectedPayment.getDescription(), payment.getDescription()); + + //test repeating payment + RepeatingPayment expectedRepeatingPayment = new RepeatingPayment(1, -10012, "2017-06-01", 1, "Test Repeating", "Lorem Ipsum", 7, "2017-06-30", 0); + RepeatingPayment repeatingPayment = databaseHandler.getRepeatingPayment(1); + assertEquals(expectedRepeatingPayment.getAmount(), repeatingPayment.getAmount()); + assertEquals(expectedRepeatingPayment.getDate(), repeatingPayment.getDate()); + assertEquals(expectedRepeatingPayment.getCategoryID(), repeatingPayment.getCategoryID()); + assertEquals(expectedRepeatingPayment.getName(), repeatingPayment.getName()); + assertEquals(expectedRepeatingPayment.getDescription(), repeatingPayment.getDescription()); + assertEquals(expectedRepeatingPayment.getRepeatInterval(), repeatingPayment.getRepeatInterval()); + assertEquals(expectedRepeatingPayment.getRepeatEndDate(), repeatingPayment.getRepeatEndDate()); + assertEquals(expectedRepeatingPayment.getRepeatMonthDay(), repeatingPayment.getRepeatMonthDay()); + } + catch(Exception e) + { + e.printStackTrace(); + fail(e.getMessage()); + } + } +} \ No newline at end of file