diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java index 1c63e4a..6f5d23a 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java @@ -8,7 +8,6 @@ import javafx.scene.control.Label; import javafx.scene.layout.*; import javafx.scene.paint.Color; import javafx.scene.text.Font; - import java.io.IOException; import java.util.logging.Logger; @@ -169,8 +168,6 @@ public class Factory { innerVbox.getChildren().add(label); } - - } /** diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java index 258996e..0c4baac 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java @@ -109,8 +109,9 @@ public class FactoryDecorator implements IsObservable { logger.warning("Failed to open tournament file Error: " + e); printMessageToFooter("Fehler beim lesen der Datei.", true); String msg = factory.getLanguageConfigurator().getSelectedLanguage("IOException"); + logger.warning("Failed to open tournament file Error: " + e); printMessageToFooter(msg, true); - } //TODO handle and logging + } } /** diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/LanguageConfigurator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/LanguageConfigurator.java index 396fa7c..beb00c7 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/LanguageConfigurator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/LanguageConfigurator.java @@ -2,7 +2,6 @@ package ch.zhaw.projekt2.turnierverwaltung; import javafx.scene.control.Labeled; import javafx.scene.control.MenuItem; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -103,11 +102,9 @@ public class LanguageConfigurator { englishDictionary.put("participantNotExist","Participant does not exist"); germanDictionary.put("placeNotExist","Teilnehmer existiert nicht"); englishDictionary.put("placeNotExist","Participant does not exist"); - //SaveMsg germanDictionary.put("save","Zuletzt gespeichert: "); englishDictionary.put("save","Last saved: "); - //Alert germanDictionary.put("yes","Ja"); englishDictionary.put("yes","Yes"); @@ -119,7 +116,6 @@ public class LanguageConfigurator { englishDictionary.put("headerDelete","Delete Tournament?"); germanDictionary.put("contentDelete","Sind Sie sicher, dass sie das Turnier entfernen wollen?\nNach diesem Vorgang kann es nicht wiederhergestellt werden."); englishDictionary.put("contentDelete","Are you shure you want to delete the tournament?\nAfter that there is no way to restore."); - germanDictionary.put("titleSchedule","Neu erstellen"); englishDictionary.put("titleSchedule","Create new"); germanDictionary.put("headerSchedule","Spielplan neu erstellen?"); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java index 4247526..22fe1e7 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; - /** * Class Team represents a team that can be added to a tournament * (in the prototype there is no functionality for the team) @@ -22,7 +21,7 @@ public class Team implements Participant { * @param name the new name to be set */ public Team(String name) { - logger.fine("Setting the new name of the team as: " + name); + logger.fine("Setting the new name of the team as: " + name); setName(name); players = new ArrayList<>(); } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java index ab4af82..8355b81 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java @@ -21,7 +21,6 @@ public class MainWindow extends Application { private Factory factory = new Factory(fileIO, tournamentDecorator, languageConfigurator); private static final Logger logger = Logger.getLogger(FileIO.class.getCanonicalName()); - /** * Start method used to initialize the main window and load it's needed component * Also sets the scene and set some values like min width and height diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindowController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindowController.java index 1931fa9..2a9c96c 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindowController.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindowController.java @@ -7,6 +7,7 @@ import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; +import java.util.logging.Logger; import java.util.logging.Logger; @@ -30,17 +31,19 @@ public class MainWindowController extends FXController { @FXML private Menu menuItemLanguage; - /** + /** * Method changes the language Setting to german */ @FXML void changeLangToGerman() { getLanguageConfigurator().changeLanguage(LanguageConfigurator.Language.GERMAN); + logger.fine("language setting changed to german"); } @FXML void changeLangToEnglish() { getLanguageConfigurator().changeLanguage(LanguageConfigurator.Language.ENGLISH); + logger.fine("language setting changed to english"); } /** @@ -63,7 +66,9 @@ public class MainWindowController extends FXController { } - + /** + * There is no content to load + */ @Override public void loadContent() { } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/AlertNewSchedule.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/AlertNewSchedule.java index f7c5760..19c4b49 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/AlertNewSchedule.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/AlertNewSchedule.java @@ -6,6 +6,9 @@ import ch.zhaw.projekt2.turnierverwaltung.LanguageConfigurator; import javafx.scene.control.Alert; import javafx.scene.control.ButtonBar; import javafx.scene.control.ButtonType; +/** + * Class that is used to display the popup window to confirm a sensitive action of the user. + */ import java.util.logging.Logger; @@ -23,6 +26,9 @@ public class AlertNewSchedule extends Alert { private String headerDelete; private String contentDelete; + /** + * Popup to ask the user if he is sure that he wants to reshuffle the game board. + */ public AlertNewSchedule(LanguageConfigurator languageConfigurator){ super(Alert.AlertType.WARNING); yes = languageConfigurator.getSelectedLanguage("yes"); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java index 87ae69b..e4b9838 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java @@ -45,7 +45,7 @@ public class GameController extends FXController{ } @FXML - void saveGameResult(Event event) { + void saveGameResult() { gameDecorator.saveGameResult(pointsTeamOne.getText(), pointsTeamTwo.getText()); } diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FactoryTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FactoryTest.java new file mode 100644 index 0000000..8da1478 --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FactoryTest.java @@ -0,0 +1,27 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import javafx.scene.layout.BorderPane; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.mockito.InOrder; +import org.mockito.Mockito; + +import static org.mockito.Mockito.inOrder; + +public class FactoryTest { + private Factory factory; + + @Test + @DisplayName("Test method calls") + void checkMethodCalls() { + FileIO fileIO = Mockito.mock(FileIO.class); + TournamentDecorator td = Mockito.mock(TournamentDecorator.class); + LanguageConfigurator lc = Mockito.mock(LanguageConfigurator.class); + BorderPane pane = Mockito.mock(BorderPane.class); + factory = new Factory(fileIO,td,lc); + InOrder order = inOrder(fileIO,td,lc); + + //factory.showTournamentList(pane); + + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/GameTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/GameTest.java new file mode 100644 index 0000000..a72332a --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/GameTest.java @@ -0,0 +1,41 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +public class GameTest { + + private Game game; + + @Test + @DisplayName("TestWinner") + void testWinnerFunction() { + Participant one = Mockito.mock(Player.class); + Participant two = Mockito.mock(Player.class); + game = new Game(one,two); + game.setPoints1(1); + Assertions.assertEquals(one,game.getWinner()); + game.setPoints2(2); + Assertions.assertEquals(two,game.getWinner()); + } + + @Test + @DisplayName("Test refresh Participant") + void refreshTest() { + Participant one = Mockito.mock(Player.class); + Participant two = Mockito.mock(Player.class); + Game game1 = new Game(one,two); + Game game2 = new Game(one,two); + game = new Game(game1,game2); + game1.setPoints1(2); + game2.setPoints2(2); + Assertions.assertNull(game.getParticipant1()); + Assertions.assertNull(game.getParticipant2()); + game.refreshParticipants(); + Assertions.assertEquals(one,game.getParticipant1()); + Assertions.assertEquals(two,game.getParticipant2()); + + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/LanguageTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/LanguageTest.java new file mode 100644 index 0000000..e5dfdb8 --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/LanguageTest.java @@ -0,0 +1,18 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class LanguageTest { + + @Test + @DisplayName("Test Dictionary") + void test() { + LanguageConfigurator languageConfigurator = new LanguageConfigurator(); + Assertions.assertEquals("Ja",languageConfigurator.getSelectedLanguage("yes")); + languageConfigurator.changeLanguage(LanguageConfigurator.Language.ENGLISH); + Assertions.assertEquals("Yes",languageConfigurator.getSelectedLanguage("yes")); + + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PersonTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PersonTest.java new file mode 100644 index 0000000..4a462db --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PersonTest.java @@ -0,0 +1,25 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class PersonTest { + private Person person; + + @Test + @DisplayName("Test invalid Parameter") + void invalidParams() { + try { + assertThrows(Person.InvalidPhoneNumberException.class,()->new Person("A","a",".sad")); + person = new Person("A","A",""); + assertEquals("A", person.getFirstName()); + assertEquals("A", person.getName()); + assertEquals("", person.getPhoneNumber()); + } catch (InvalidNameException | Person.InvalidPhoneNumberException e) { + fail(); + } + } + +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlaceTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlaceTest.java new file mode 100644 index 0000000..81e6ba6 --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlaceTest.java @@ -0,0 +1,36 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class PlaceTest { + private Place place; + + @Test + @DisplayName("Test Params") + void paramTest() { + Assertions.assertThrows(InvalidNameException.class, () -> new Place("*")); + try { + place = new Place("placeA"); + assertEquals("placeA", place.getName()); + } catch (InvalidNameException e) { + fail(); + } + } + + @Test + @DisplayName("Place Equals Test") + void testEqual() { + try { + place = new Place("placeA"); + assertTrue(place.equals(place)); + assertTrue(place.equals(new Place("placeA"))); + assertFalse(place.equals(new Place("nads"))); + } catch (InvalidNameException e) { + fail(); + } + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlayerTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlayerTest.java new file mode 100644 index 0000000..9b22d6d --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/PlayerTest.java @@ -0,0 +1,39 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class PlayerTest { + private Player player; + + @Test + @DisplayName("Test invalid Parameter") + void invalidParams() { + try { + assertThrows(Person.InvalidPhoneNumberException.class,()->new Player("A","a",".sad","")); + assertThrows(Player.InvalidDateException.class,()->new Player("A","a","","a")); + player = new Player("A","A","",""); + assertEquals("A",player.getFirstName()); + assertEquals("A",player.getName()); + assertEquals("",player.getPhoneNumber()); + assertNull(player.getDateOfBirth()); + } catch (InvalidNameException | Person.InvalidPhoneNumberException | Player.InvalidDateException e) { + fail(); + } + } + + @Test + @DisplayName("Test equals") + void equalsTest() { + try { + player = new Player("A","A","",""); + assertTrue(player.equals(player)); + assertFalse(player.equals(new Player("B", "D", "", ""))); + assertTrue(player.equals(new Player("A", "A", "", ""))); + } catch (InvalidNameException | Person.InvalidPhoneNumberException | Player.InvalidDateException e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TeamTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TeamTest.java new file mode 100644 index 0000000..2e53a38 --- /dev/null +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TeamTest.java @@ -0,0 +1,31 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +public class TeamTest { + + private Team team; + + @Test + @DisplayName("Team Params") + void testParams() { + Player player = Mockito.mock(Player.class); + team = new Team("Team1"); + for (int i = 0; i < 3; i++) { + Assertions.assertEquals(i,team.getPlayers().size()); + team.addPlayer(player); + } + } + + @Test + @DisplayName("Team Equals") + void equalTeam() { + team = new Team("A"); + Assertions.assertTrue(team.equals(team)); + Assertions.assertTrue(team.equals(new Team("A"))); + Assertions.assertFalse(team.equals(new Team("B"))); + } +} diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TournamentTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TournamentTest.java index 3acc30c..75e98d4 100644 --- a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TournamentTest.java +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/TournamentTest.java @@ -44,20 +44,21 @@ public class TournamentTest { //Checks if one Participant gets added Participant participantOne = Mockito.mock(Player.class); when(participantOne.equals(any(Participant.class))).thenReturn(false); - - assertEquals(0, tournament.getParticipants().size()); - tournament.saveParticipant(participantOne); - assertEquals(1, tournament.getParticipants().size()); - - //Checks if a second Participant gets added - Participant participantTwo = Mockito.mock(Player.class); - tournament.saveParticipant(participantTwo); - assertEquals(2, tournament.getParticipants().size()); - - //Checks if a allready added Particpant does not get added - when(participantOne.equals(any(Participant.class))).thenReturn(true); - tournament.saveParticipant(participantTwo); - assertEquals(2, tournament.getParticipants().size()); + try { + assertEquals(0, tournament.getParticipants().size()); + tournament.saveParticipant(participantOne); + assertEquals(1, tournament.getParticipants().size()); + //Checks if a second Participant gets added + Participant participantTwo = Mockito.mock(Player.class); + tournament.saveParticipant(participantTwo); + assertEquals(2, tournament.getParticipants().size()); + //Checks if a allready added Particpant does not get added + when(participantOne.equals(any(Participant.class))).thenReturn(true); + tournament.saveParticipant(participantTwo); + assertEquals(2, tournament.getParticipants().size()); + } catch (Person.InvalidPhoneNumberException e) { + fail(); + } } @@ -69,13 +70,13 @@ public class TournamentTest { //Checks if Error is thrown if Participant not in list assertThrows(Tournament.ParticipantNotExistsException.class, () -> tournament.removeParticipant(participant)); - //Checks if participant gets removed - tournament.saveParticipant(participant); - assertEquals(1, tournament.getParticipants().size()); try { + //Checks if participant gets removed + tournament.saveParticipant(participant); + assertEquals(1, tournament.getParticipants().size()); tournament.removeParticipant(participant); assertEquals(0, tournament.getParticipants().size()); - } catch (Tournament.ParticipantNotExistsException e) { + } catch (Tournament.ParticipantNotExistsException | Person.InvalidPhoneNumberException e) { fail(); } } @@ -126,13 +127,18 @@ public class TournamentTest { tournament.createGameSchedule(); assertEquals(2, tournament.getGameList().size()); tournament.saveParticipant(participant); - } catch (Tournament.NumberOfParticipantInvalidException e) { + } catch (Tournament.NumberOfParticipantInvalidException | Person.InvalidPhoneNumberException e) { fail(); } } else { + assertThrows(Tournament.NumberOfParticipantInvalidException.class, () -> tournament.createGameSchedule()); - tournament.saveParticipant(participant); + try { + tournament.saveParticipant(participant); + } catch (Person.InvalidPhoneNumberException e) { + e.printStackTrace(); + } } } try {