package ingsw.proj.cluedo.logica;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import ingsw.proj.cluedo.componenti.Soluzione;
import java.awt.Point;
import java.util.Iterator;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class ControlloreDiGiocoTest {
String[] nomiGiocatori;
ControlloreDiGioco controller;
@Before
public void setUp() throws Exception {
nomiGiocatori = new String[] { "1", "2", "3", "4" };
controller = new InitGioco(nomiGiocatori).getControllore();
}
@After
public void tearDown() throws Exception {
nomiGiocatori = null;
controller = null;
System.gc();
}
@Test
public final void testControlloreDiGioco() {
assertNotNull(controller);
assertTrue(controller instanceof ControlloreDiGioco);
}
@Test(expected = NullPointerException.class)
public final void testControlloreDiGiocoNullPointer() {
new ControlloreDiGioco(null, null, null, null);
}
@Test
public final void testGetDestinazioniGiocatore() {
for (int i = 0; i < nomiGiocatori.length; i++) {
Iterator<Point> posizioneIt = controller.getDestinazioniGiocatore(nomiGiocatori[i]);
while (posizioneIt.hasNext())
assertNotNull(posizioneIt.next());
}
}
@Test
public final void testGetNoteGiocatore() {
for (int i = 0; i < nomiGiocatori.length; i++) {
Iterator<String> noteIt = controller.getNoteGiocatore(nomiGiocatori[i]);
while (noteIt.hasNext())
assertNotNull(noteIt.next());
}
}
@Test
public final void testGetPosizioneGiocatore() {
for (int i = 0; i < nomiGiocatori.length; i++)
assertNotNull(controller.getPosizioneGiocatore(nomiGiocatori[i]));
}
@Test
public final void testGetStanzaGiocatore() {
for (int i = 0; i < nomiGiocatori.length; i++)
assertNotNull(controller.getStanzaGiocatore(nomiGiocatori[i]));
}
@Test
public final void testGetStatoGiocatore() {
for (int i = 0; i < nomiGiocatori.length; i++)
assertNotNull(controller.getStatoGiocatore(nomiGiocatori[i]));
}
@Test
public final void testGetTabelloneRidotto() {
for (int i = 0; i < nomiGiocatori.length; i++)
assertNotNull(controller.getTabelloneRidotto());
}
@Test
public final void testGiocoAttivo() {
assertTrue(controller.giocoAttivo());
}
@Test
public final void testSpostaGiocatore() {
assertNotNull("Non testabile");
}
// @Test
// public final void testVerificaAccusa() {
// fail("Not yet implemented"); // TODO
// }
//
// @Test
// public final void testVerificaIpotesi() {
// fail("Not yet implemented"); // TODO
// }
@Test
public final void testGetProssimoGiocatore() {
assertNotNull(controller.getProssimoGiocatore(null));
for (int i = 0; i < nomiGiocatori.length; i++) {
assertNotNull(controller.getProssimoGiocatore(nomiGiocatori[i]));
}
}
@Test
public final void testGetPossibiliAzioni() {
assertNotNull(controller.getPossibiliAzioni(nomiGiocatori[0]));
assertNotNull(controller.getPossibiliAzioni(nomiGiocatori[0]));
}
@Test
public final void testGetCarteGiocatore() {
Soluzione soluzione = controller.getSoluzione();
Iterator<String> carteIt = controller.getCarteGiocatore(nomiGiocatori[0]);
while (carteIt.hasNext()) {
String daControllare = carteIt.next();
assertFalse(daControllare.equals(soluzione.getArma().toString()));
assertFalse(daControllare.equals(soluzione.getSospetto().toString()));
assertFalse(daControllare.equals(soluzione.getStanza().toString()));
}
}
@Test
public final void testGetSoluzione() {
Soluzione soluzione = controller.getSoluzione();
for (int i = 0; i < nomiGiocatori.length; i++) {
Iterator<String> carteiT = controller.getCarteGiocatore(nomiGiocatori[i]);
while (carteiT.hasNext()) {
String daControllare = carteiT.next();
assertFalse(daControllare.equals(soluzione.getArma().toString()));
assertFalse(daControllare.equals(soluzione.getSospetto().toString()));
assertFalse(daControllare.equals(soluzione.getStanza().toString()));
}
}
}
}