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());
}
}