@Test
	public void testDoLogout() {
		// Richiamo l'helper per aggiungere due utenti ("abc" e "abd") e avere testingToken e testingToken2.
		aggiungiDueUtenti();
		// Aggiungo tutti gli utenti come nel test testDoAccessoPartita
		// Li creo, li loggo, creo le razze e li faccio accedere alla partita.
		// Non ammetto eccezioni.
		try {
			assertTrue(logicaTest.doCreaRazza(testingToken, "miaRazza1", 'e'));
			assertTrue(logicaTest.doCreaRazza(testingToken2, "miaRazza2", 'e'));
			assertTrue(logicaTest.doCreaUtente("abe", "myPwd3"));
			assertTrue(logicaTest.doLogin("abe", "myPwd3"));
			assertTrue(logicaTest.doCreaUtente("abf", "myPwd4"));
			assertTrue(logicaTest.doLogin("abf", "myPwd4"));
			assertTrue(logicaTest.doCreaUtente("abg", "myPwd5"));
			assertTrue(logicaTest.doLogin("abg", "myPwd5"));
			assertTrue(logicaTest.doCreaUtente("abh", "myPwd6"));
			assertTrue(logicaTest.doLogin("abh", "myPwd6"));
			assertTrue(logicaTest.doCreaUtente("abi", "myPwd7"));
			assertTrue(logicaTest.doLogin("abi", "myPwd7"));
			testingToken3 = logicaTest.getCMan().getToken("abe");
			assertTrue(logicaTest.doCreaRazza(logicaTest.getCMan().getToken("abe"), "miaRazza3", 'c'));
			assertTrue(logicaTest.doCreaRazza(logicaTest.getCMan().getToken("abf"), "miaRazza4", 'c'));
			assertTrue(logicaTest.doCreaRazza(logicaTest.getCMan().getToken("abg"), "miaRazza5", 'c'));
			assertTrue(logicaTest.doCreaRazza(logicaTest.getCMan().getToken("abh"), "miaRazza6", 'c'));
			assertTrue(logicaTest.doCreaRazza(logicaTest.getCMan().getToken("abi"), "miaRazza7", 'c'));
			assertTrue(logicaTest.doAccessoPartita(testingToken));
			assertTrue(logicaTest.doAccessoPartita(testingToken2));
			assertTrue(logicaTest.doAccessoPartita(testingToken3));
			assertTrue(logicaTest.doAccessoPartita(logicaTest.getCMan().getToken("abf")));
			assertTrue(logicaTest.doAccessoPartita(logicaTest.getCMan().getToken("abg")));
			assertTrue(logicaTest.doAccessoPartita(logicaTest.getCMan().getToken("abh")));
		}
		catch (UserExistsException e) { fail(); }
		catch (UserAuthenticationFailedException e) { fail(); }
		catch (NomeRazzaOccupatoException e) { fail(); }
		catch (InvalidTokenException e) { fail(); }
		catch (InterruptedException e) { fail(); }
		catch (TroppiGiocatoriException e) { fail(); }
		catch (RazzaNonCreataException e) { fail(); }
		// Testa effettivamente il logout
		// Attenzione! Alcuni utenti sono ANCHE in partita.
		// Non dovrebbe costituire problema, perchè l'implementazione nel caso gestisce prima l'uscita e poi il logout.
		try {
			assertTrue(logicaTest.doLogout(testingToken));
			assertTrue(logicaTest.doLogout(testingToken2));
			assertTrue(logicaTest.doLogout(testingToken3));
			assertTrue(logicaTest.doLogout(logicaTest.getCMan().getToken("abf")));
			assertTrue(logicaTest.doLogout(logicaTest.getCMan().getToken("abg")));
			assertTrue(logicaTest.doLogout(logicaTest.getCMan().getToken("abh")));
		}
		catch (InvalidTokenException e) { System.out.println("[testDoLogout] Eccezione InvalidToken gestita correttamente."); }
		// Testo con un token fasullo e gestisco l'eccezione InvalidToken
		try {
			assertFalse(logicaTest.doLogout("tokenFasullo"));
		}
		catch (InvalidTokenException e) { System.out.println("[testDoUscitaPartita] Eccezione InvalidToken gestita correttamente"); }
	}