Skip to content

Content of file DilemmaPlayerImplTest.java

package de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.impl;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import de.fhdw.gaming.core.domain.GameException;
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.DilemmaGameBuilder;
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.DilemmaPlayer;
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.DilemmaPlayerBuilder;
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.impl.DilemmaGameBuilderImpl;
No need to import a type that lives in the same package.
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.impl.DilemmaPlayerImpl; import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.impl.DilemmaStateImpl; import de.fhdw.gaming.ipspiel21.dilemmaOriginal.moves.impl.DilemmaBeSilentMove; import de.fhdw.gaming.ipspiel21.dilemmaOriginal.moves.impl.DilemmaConfessMove; /** * Tests DilemmaPlayerImpl class. */ class DilemmaPlayerImplTest { /** * First Dilemma player. */ private DilemmaPlayer p1; /** * Second Dilemma player. */ private DilemmaPlayer p2; /** * First Dilemma player builder. */ private DilemmaPlayerBuilder p1builder; /** * Second Dilemma player builder. */ private DilemmaPlayerBuilder p2builder; /** * Dilemma game state. */ private DilemmaStateImpl state; /** * Creates new builder for each test. */ @BeforeEach public void initTest() { final DilemmaGameBuilder gameBuilder = new DilemmaGameBuilderImpl(); this.p1builder = gameBuilder.createPlayerBuilder().defaultPlayerBuilder().changeName("Hans"); this.p2builder = gameBuilder.createPlayerBuilder().defaultPlayerBuilder().changeName("Marta"); } /** * Tests {@link DilemmaPlayerImpl#equals(Object)}. * * @throws GameException */ @Test void testEquals() throws GameException { try { this.state = new DilemmaStateImpl(this.p1builder, this.p2builder); this.p1 = this.p1builder.build(state); this.p2 = this.p2builder.build(state); this.p1.setMove(new DilemmaBeSilentMove()); this.p2.setMove(new DilemmaBeSilentMove()); } catch (GameException e) { fail(e.getMessage()); } assertTrue(this.p1.equals(this.p1)); assertFalse(this.p1.equals(this.p2)); this.p2.setMove(new DilemmaConfessMove()); assertFalse(this.p1.equals(this.p2)); } /** * Tests {@link DilemmaPlayerImpl#toString()}. */ @Test void testToString() { try { this.state = new DilemmaStateImpl(this.p1builder, this.p2builder); this.p1 = this.p1builder.build(state); this.p2 = this.p2builder.build(state); this.p1.setMove(new DilemmaBeSilentMove()); this.p2.setMove(new DilemmaConfessMove()); } catch (GameException e) { fail(e.getMessage()); } assertEquals("DilemmaPlayer[name=Hans, state=PLAYING, outcome=Optional.empty, " + "move=SilentMove]", p1.toString()); assertEquals("DilemmaPlayer[name=Marta, state=PLAYING, outcome=Optional.empty, " + "move=ConfessMove]", p2.toString()); } }