change method addPlace
start TournamentTest implementation
This commit is contained in:
		
							parent
							
								
									f885092259
								
							
						
					
					
						commit
						68080c36ff
					
				| 
						 | 
					@ -26,6 +26,8 @@ dependencies {
 | 
				
			||||||
    // Use JUnit Jupiter for testing.
 | 
					    // Use JUnit Jupiter for testing.
 | 
				
			||||||
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
 | 
					    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testImplementation 'org.mockito:mockito-core:4.3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // This dependency is used by the application.
 | 
					    // This dependency is used by the application.
 | 
				
			||||||
    implementation 'com.google.guava:guava:30.1.1-jre'
 | 
					    implementation 'com.google.guava:guava:30.1.1-jre'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +39,9 @@ application {
 | 
				
			||||||
    mainClass = 'ch.zhaw.projekt2.turnierverwaltung.App'
 | 
					    mainClass = 'ch.zhaw.projekt2.turnierverwaltung.App'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tasks.named('test') {
 | 
					test {
 | 
				
			||||||
    // Use JUnit Platform for unit tests.
 | 
					    // Use JUnit Platform for unit tests.
 | 
				
			||||||
    useJUnitPlatform()
 | 
					    useJUnitPlatform()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,4 +29,8 @@ public class Place implements Serializable {
 | 
				
			||||||
    public boolean equals(Place place){
 | 
					    public boolean equals(Place place){
 | 
				
			||||||
        return name.equals(place.getName());
 | 
					        return name.equals(place.getName());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void change(Place place) {
 | 
				
			||||||
 | 
					        //TODO: If Place gets more developt in future releases
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@ package ch.zhaw.projekt2.turnierverwaltung;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javafx.collections.FXCollections;
 | 
					import javafx.collections.FXCollections;
 | 
				
			||||||
import javafx.collections.ObservableList;
 | 
					import javafx.collections.ObservableList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.Serializable;
 | 
					import java.io.Serializable;
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,8 +29,8 @@ public class Tournament implements Serializable {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void saveParticipant(Participant newParticipant) {
 | 
					    public void saveParticipant(Participant newParticipant) {
 | 
				
			||||||
        for(Participant participant: participants){
 | 
					        for (Participant participant : participants) {
 | 
				
			||||||
            if(participant.equals(newParticipant)){
 | 
					            if (participant.equals(newParticipant)) {
 | 
				
			||||||
                participant.change(newParticipant);
 | 
					                participant.change(newParticipant);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -50,8 +51,13 @@ public class Tournament implements Serializable {
 | 
				
			||||||
        return participantsObservable;
 | 
					        return participantsObservable;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void addPlace(Place newPlace) throws PlaceExistsException {
 | 
					    public void addPlace(Place newPlace) {
 | 
				
			||||||
        places.removeIf(place -> place.equals(newPlace));
 | 
					        for (Place place : places) {
 | 
				
			||||||
 | 
					            if (place.equals(newPlace)) {
 | 
				
			||||||
 | 
					                place.change(newPlace);
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        places.add(newPlace);
 | 
					        places.add(newPlace);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,7 +97,7 @@ public class Tournament implements Serializable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private boolean numberOfParticipantValid() {
 | 
					    private boolean numberOfParticipantValid() {
 | 
				
			||||||
        double res = Math.log(participants.size()) / Math.log(2);
 | 
					        double res = Math.log(participants.size()) / Math.log(2);
 | 
				
			||||||
        return (res * 10) % 10 == 0 && participants.size() >=4;
 | 
					        return (res * 10) % 10 == 0 && participants.size() >= 4;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void calcGameSchedule() {
 | 
					    private void calcGameSchedule() {
 | 
				
			||||||
| 
						 | 
					@ -101,11 +107,11 @@ public class Tournament implements Serializable {
 | 
				
			||||||
            List<Game> gameRound = new ArrayList<>();
 | 
					            List<Game> gameRound = new ArrayList<>();
 | 
				
			||||||
            if (i == 0) {
 | 
					            if (i == 0) {
 | 
				
			||||||
                for (int j = 0; j < participants.size() - 1; j += 2) {
 | 
					                for (int j = 0; j < participants.size() - 1; j += 2) {
 | 
				
			||||||
                    gameRound.add(new Game(participants.get(j), participants.get(j+1)));
 | 
					                    gameRound.add(new Game(participants.get(j), participants.get(j + 1)));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                for (int j = 0; j < (gameList.get(i-1).size()/2); j++) {
 | 
					                for (int j = 0; j < (gameList.get(i - 1).size() / 2); j++) {
 | 
				
			||||||
                    gameRound.add(new Game(gameList.get(i-1).get(j*2),gameList.get(i-1).get(j*2+1)));
 | 
					                    gameRound.add(new Game(gameList.get(i - 1).get(j * 2), gameList.get(i - 1).get(j * 2 + 1)));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            gameList.add(gameRound);
 | 
					            gameList.add(gameRound);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,10 +148,6 @@ public class TournamentDecorator implements IsObservable{
 | 
				
			||||||
            tournament.addPlace(new Place(name));
 | 
					            tournament.addPlace(new Place(name));
 | 
				
			||||||
            factoryDecorator.clearMessage(true);
 | 
					            factoryDecorator.clearMessage(true);
 | 
				
			||||||
            informListener();
 | 
					            informListener();
 | 
				
			||||||
        } catch (Tournament.PlaceExistsException e) {
 | 
					 | 
				
			||||||
            e.printStackTrace(); //TODO handle and logging
 | 
					 | 
				
			||||||
            factoryDecorator.printMessageToFooter("Ort existiert bereits",true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        } catch (InvalidNameException e) {
 | 
					        } catch (InvalidNameException e) {
 | 
				
			||||||
            e.printStackTrace(); //TODO handle and logging
 | 
					            e.printStackTrace(); //TODO handle and logging
 | 
				
			||||||
            factoryDecorator.printMessageToFooter("Invalider Ortsname",true);
 | 
					            factoryDecorator.printMessageToFooter("Invalider Ortsname",true);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,85 @@
 | 
				
			||||||
 | 
					package ch.zhaw.projekt2.turnierverwaltung;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javafx.application.Platform;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.BeforeEach;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.DisplayName;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.Nested;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.Test;
 | 
				
			||||||
 | 
					import org.mockito.Mockito;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.jupiter.api.Assertions.*;
 | 
				
			||||||
 | 
					import static org.mockito.ArgumentMatchers.any;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.when;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@DisplayName("TournamentTest")
 | 
				
			||||||
 | 
					public class TournamentTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Nested
 | 
				
			||||||
 | 
					    @DisplayName("KOMode")
 | 
				
			||||||
 | 
					    public class KOMode {
 | 
				
			||||||
 | 
					        private Tournament tournament;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @BeforeEach
 | 
				
			||||||
 | 
					        void setup() {
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                tournament = new Tournament("Name", Tournament.Type.KO);
 | 
				
			||||||
 | 
					            } catch (InvalidNameException e) {
 | 
				
			||||||
 | 
					                e.printStackTrace();
 | 
				
			||||||
 | 
					                fail();
 | 
				
			||||||
 | 
					            } catch (Tournament.InvalidTypeException e) {
 | 
				
			||||||
 | 
					                e.printStackTrace();
 | 
				
			||||||
 | 
					                fail();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Test
 | 
				
			||||||
 | 
					        @DisplayName("Test invalid instance")
 | 
				
			||||||
 | 
					        void makeInvalidInstance() {
 | 
				
			||||||
 | 
					            assertThrows(InvalidNameException.class,() -> new Tournament(".", Tournament.Type.KO));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Test
 | 
				
			||||||
 | 
					        @DisplayName("Save Participant")
 | 
				
			||||||
 | 
					        void saveParticipantTest() {
 | 
				
			||||||
 | 
					            //Checks if one Participant gets added
 | 
				
			||||||
 | 
					            Participant participantOne = Mockito.mock(Player.class);
 | 
				
			||||||
 | 
					            when(participantOne.equals(any(Participant.class))).thenReturn(false);
 | 
				
			||||||
 | 
					            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());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Test
 | 
				
			||||||
 | 
					        @DisplayName("Remove Participant")
 | 
				
			||||||
 | 
					        void removeParticipantTest() {
 | 
				
			||||||
 | 
					            Participant participant = Mockito.mock(Player.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //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 {
 | 
				
			||||||
 | 
					                tournament.removeParticipant(participant);
 | 
				
			||||||
 | 
					                assertEquals(0,tournament.getParticipants().size());
 | 
				
			||||||
 | 
					            } catch (Tournament.ParticipantNotExistsException e) {
 | 
				
			||||||
 | 
					                fail();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue