From f6d44f76c2237f1e541a826c915618ee060b4ef7 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Sun, 12 Apr 2026 20:41:20 +0200 Subject: [PATCH] Fix: Fixed DatabaseSetupTest --- .../team6/database/DatabaseManagerTest.java | 140 ------------------ .../team6/database/DatabaseSetupTest.java | 65 ++++++++ 2 files changed, 65 insertions(+), 140 deletions(-) delete mode 100644 helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseManagerTest.java create mode 100644 helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseSetupTest.java diff --git a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseManagerTest.java b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseManagerTest.java deleted file mode 100644 index 2ef32eb..0000000 --- a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseManagerTest.java +++ /dev/null @@ -1,140 +0,0 @@ -package ntnu.systemutvikling.team6.database; - -import static org.junit.jupiter.api.Assertions.*; - -import java.sql.*; -import java.util.ArrayList; -import java.util.List; -import ntnu.systemutvikling.team6.database.Readers.CharitySelect; -import ntnu.systemutvikling.team6.database.Readers.DonationSelect; -import ntnu.systemutvikling.team6.models.Charity; -import ntnu.systemutvikling.team6.models.CharityRegistry; -import ntnu.systemutvikling.team6.service.APIToDatabaseService; -import org.junit.jupiter.api.*; - -class DatabaseManagerTest { - - private DatabaseSetup dbManager; - private APIToDatabaseService service; - private CharitySelect charitySelect; - private DonationSelect donationSelect; - - @BeforeEach - public void setUp() throws SQLException { - DatabaseConnection conn = new DatabaseConnection(); - this.dbManager = new DatabaseSetup(conn); - this.service = new APIToDatabaseService(conn); - this.charitySelect = new CharitySelect(conn); - this.donationSelect = new DonationSelect(conn); - } - - // Make sure you're connected to the NTNU network for this to work - @Test - public void testConnectionShouldReturnTrue() { - assertTrue(dbManager.testConnection()); - } - - @Test - void createCharitiesTableShouldCreateTableSuccessfully() throws SQLException { - dbManager.createTables(); - - try (Connection conn = new DatabaseConnection().getMySqlConnection()) { - ResultSet rs = conn.getMetaData().getTables(null, null, "Charities", null); - - assertTrue(rs.next()); - } - } - - @Test - void updateCharitiesShouldInsertCorrectData() throws SQLException { - dbManager.createTables(); - - String org_number = "12345"; - String name = "Test Charity"; - String status = "approved"; - String url = "https://www.svindel.no"; - boolean is_pre_approved = false; - - Charity charity = new Charity(org_number, url, name, is_pre_approved, status); - service.addAPIDataToTable(List.of(charity)); - - Charity charity2 = new Charity(org_number, url, name + " Updated", is_pre_approved, status); - service.addAPIDataToTable(List.of(charity2)); - - dbManager.createTables(); - - CharityRegistry registry = charitySelect.getCharitiesFromDB(); - Charity insertedCharity = registry.findCharityByOrgnumber("12345").get(); - assertEquals("Test Charity Updated", insertedCharity.getName()); - } - - @Test - void updateCharitiesShouldRemoveDataNotInList() throws SQLException { - String org_number = "12345"; - String name = "Svindelorg"; - String status = "approved"; - String url = "https://www.svindel.no"; - boolean is_pre_approved = false; - - var charity1 = new Charity(org_number, url, name, is_pre_approved, status); - - org_number = "23456"; - name = "SvindelKoin"; - status = "approved"; - url = "https://www.svindel.net"; - is_pre_approved = true; - - var charity2 = new Charity(org_number, url, name, is_pre_approved, status); - - org_number = "345672"; - name = "Arme Svindlere"; - status = "approved"; - url = "https://www.armesvindlere.com"; - is_pre_approved = false; - - var charity3 = new Charity(org_number, url, name, is_pre_approved, status); - - List charityListBefore = new ArrayList<>(); - charityListBefore.add(charity1); - charityListBefore.add(charity2); - charityListBefore.add(charity3); - - service.addAPIDataToTable(charityListBefore); - - List charityListNew = new ArrayList<>(); - charityListNew.add(charity1); - charityListNew.add(charity3); - - service.addAPIDataToTable(charityListNew); - - try (Connection conn = new DatabaseConnection().getMySqlConnection()) { - PreparedStatement stmt = - conn.prepareStatement("SELECT COUNT(org_number) AS number_a FROM Charities"); - - ResultSet rs = stmt.executeQuery(); - - assertTrue(rs.next(), "Charities count row should exist."); - assertEquals( - 2, - rs.getInt("number_a"), - "The amount of org_numbers in the table" + "should be 2 due to removal of 1 table."); - } - } - - @Test - void tempTableShouldNotExistAfterUpdating() throws SQLException { - Charity charity = new Charity("99999", "https://temp.no", "Temp Charity", false, "approved"); - - service.addAPIDataToTable(List.of(charity)); - - try (Connection conn = new DatabaseConnection().getMySqlConnection()) { - PreparedStatement stmt = conn.prepareStatement("SELECT * FROM temp_api_charities"); - - assertThrows( - java.sql.SQLSyntaxErrorException.class, - () -> { - ResultSet rs = stmt.executeQuery(); - }); - } - } -} diff --git a/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseSetupTest.java b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseSetupTest.java new file mode 100644 index 0000000..4501cd8 --- /dev/null +++ b/helpmehelpapplication/src/test/java/ntnu/systemutvikling/team6/database/DatabaseSetupTest.java @@ -0,0 +1,65 @@ +package ntnu.systemutvikling.team6.database; + +import static org.junit.jupiter.api.Assertions.*; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; +import ntnu.systemutvikling.team6.database.Readers.CharitySelect; +import ntnu.systemutvikling.team6.database.Readers.DonationSelect; +import ntnu.systemutvikling.team6.models.Charity; +import ntnu.systemutvikling.team6.models.CharityRegistry; +import ntnu.systemutvikling.team6.service.APIToDatabaseService; +import org.junit.jupiter.api.*; + +class DatabaseSetupTest { + + private DatabaseSetup dbManager; + private APIToDatabaseService service; + private CharitySelect charitySelect; + private DonationSelect donationSelect; + + @BeforeEach + public void setUp() throws SQLException { + DatabaseConnection conn = new DatabaseConnection(); + this.dbManager = new DatabaseSetup(conn); + this.service = new APIToDatabaseService(conn); + this.charitySelect = new CharitySelect(conn); + this.donationSelect = new DonationSelect(conn); + } + + // Make sure you're connected to the NTNU network for this to work + @Test + public void testConnectionShouldReturnTrue() { + assertTrue(dbManager.testConnection()); + } + + @Test + void createCharitiesTableShouldCreateTableSuccessfully() throws SQLException { + dbManager.createTables(); + + try (Connection conn = new DatabaseConnection().getMySqlConnection()) { + ResultSet rs = conn.getMetaData().getTables(null, null, "Charities", null); + + assertTrue(rs.next()); + } + } + + + @Test + void tempTableShouldNotExistAfterUpdating() throws SQLException { + Charity charity = new Charity("99999", "https://temp.no", "Temp Charity", false, "approved"); + + service.addAPIDataToTable(List.of(charity)); + + try (Connection conn = new DatabaseConnection().getMySqlConnection()) { + PreparedStatement stmt = conn.prepareStatement("SELECT * FROM temp_api_charities"); + + assertThrows( + java.sql.SQLSyntaxErrorException.class, + () -> { + ResultSet rs = stmt.executeQuery(); + }); + } + } +}