From a9da221db486adf7d5119e4f4753bf225cb0b631 Mon Sep 17 00:00:00 2001
From: Callum Gran <callumg@stud.ntnu.no>
Date: Tue, 26 Apr 2022 11:28:05 +0200
Subject: [PATCH] fix(teamDAO): teams can now be in multiple divisions

---
 .../java/edu/ntnu/idatt1002/k1g4/Match.java   |  1 -
 .../edu/ntnu/idatt1002/k1g4/client/Model.java |  2 +-
 .../edu/ntnu/idatt1002/k1g4/dao/TeamDAO.java  | 22 +++++++++++++++++--
 .../edu/ntnu/idatt1002/k1g4/MatchDAOTest.java |  1 -
 .../edu/ntnu/idatt1002/k1g4/TeamDAOTest.java  |  2 +-
 5 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/main/java/edu/ntnu/idatt1002/k1g4/Match.java b/src/main/java/edu/ntnu/idatt1002/k1g4/Match.java
index 8178830e..f27e890a 100644
--- a/src/main/java/edu/ntnu/idatt1002/k1g4/Match.java
+++ b/src/main/java/edu/ntnu/idatt1002/k1g4/Match.java
@@ -161,7 +161,6 @@ public class Match {
     public void setFinished() {
         setFinished(LocalDateTime.now());
         if (isKnockout) {
-            System.out.println("WTF");
             setWinner();
         }
     }
diff --git a/src/main/java/edu/ntnu/idatt1002/k1g4/client/Model.java b/src/main/java/edu/ntnu/idatt1002/k1g4/client/Model.java
index 5f34f26b..00e74491 100644
--- a/src/main/java/edu/ntnu/idatt1002/k1g4/client/Model.java
+++ b/src/main/java/edu/ntnu/idatt1002/k1g4/client/Model.java
@@ -370,7 +370,7 @@ public class Model {
             team.setName(teamName);
             team.setCompeting(true);
             try {
-                teamDAO.addTeam(team);
+                teamDAO.addTeam(team, currentDivision.getDivisionId());
                 teamDAO.linkTeamToDivision(teamDAO.getTeamByName(teamName).getTeamId(), currentDivision.getDivisionId());
             } catch (IllegalArgumentException e) {
                 result = false;
diff --git a/src/main/java/edu/ntnu/idatt1002/k1g4/dao/TeamDAO.java b/src/main/java/edu/ntnu/idatt1002/k1g4/dao/TeamDAO.java
index 8ed8f372..c85cd456 100644
--- a/src/main/java/edu/ntnu/idatt1002/k1g4/dao/TeamDAO.java
+++ b/src/main/java/edu/ntnu/idatt1002/k1g4/dao/TeamDAO.java
@@ -186,7 +186,7 @@ public class TeamDAO {
      *
      * @param team Team: the team to be added to the database.
      */
-    public void addTeam(Team team) throws IllegalArgumentException {
+    public void addTeam(Team team, int divisionId) throws IllegalArgumentException {
         String sql = "INSERT INTO teams(teamName, competing) VALUES(?, ?)";
         Team teamFromDb = getTeamByName(team.getName());
         ResultSet resultSet = null;
@@ -205,7 +205,25 @@ public class TeamDAO {
                 close(connection, preparedStatement, resultSet);
             }
         } else {
-            throw new IllegalArgumentException();
+            String sqlLink = "SELECT * FROM teams, divisionsteamslink WHERE teams.teamId = divisionsteamslink.teamId AND teams.teamName = ? AND divisionsteamslink.divisionId = ?";
+            Team newTeamFromDB;
+            try {
+                connection = Database.instance().getConnection();
+                preparedStatement = connection.prepareStatement(sqlLink);
+                preparedStatement.setString(1, team.getName());
+                preparedStatement.setInt(2, divisionId);
+                resultSet = preparedStatement.executeQuery();
+                newTeamFromDB = getTeamFromResultSet(resultSet);
+                if (newTeamFromDB == null) {
+                    linkTeamToDivision(teamFromDb.getTeamId(), divisionId);
+                } else {
+                    throw new IllegalArgumentException();
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            } finally {
+                close(connection, preparedStatement, resultSet);
+            }
         }
     }
 
diff --git a/src/test/java/edu/ntnu/idatt1002/k1g4/MatchDAOTest.java b/src/test/java/edu/ntnu/idatt1002/k1g4/MatchDAOTest.java
index 74f41724..bfc40d09 100644
--- a/src/test/java/edu/ntnu/idatt1002/k1g4/MatchDAOTest.java
+++ b/src/test/java/edu/ntnu/idatt1002/k1g4/MatchDAOTest.java
@@ -33,7 +33,6 @@ public class MatchDAOTest {
         expectedFieldList.add("A1");
         expectedFieldList.add("A2");
         expectedFieldList.add("A3");
-        System.out.println(actualMatches.size());
         assertTrue(actualMatches.size() == expectedFieldList.size() && actualMatches.containsAll(expectedFieldList));
     }
 
diff --git a/src/test/java/edu/ntnu/idatt1002/k1g4/TeamDAOTest.java b/src/test/java/edu/ntnu/idatt1002/k1g4/TeamDAOTest.java
index 3960fb84..24dffb29 100644
--- a/src/test/java/edu/ntnu/idatt1002/k1g4/TeamDAOTest.java
+++ b/src/test/java/edu/ntnu/idatt1002/k1g4/TeamDAOTest.java
@@ -64,7 +64,7 @@ public class TeamDAOTest {
     public void testAddTeam() {
         Team team = new Team("Callums Javaer", true);
         try {
-            teamDAO.addTeam(team);
+            teamDAO.addTeam(team, 1);
         } catch (IllegalArgumentException e) {
             System.out.println(e.getMessage());
         }
-- 
GitLab