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