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;
import de.fhdw.gaming.ipspiel21.dilemmaOriginal.domain.impl.DilemmaPlayerImpl;
  | No need to import a type that lives in the same package.  |  | 
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());
    }
}