@Test
	public void testJoinGame() { 
		// valid join
		try {
			games.joinGame(new JoinGameRequest(0, "blue"), "TestUser", 999);
			assertEquals("Failed to add player name to empty game in games list.", "TestUser", games.listGames().get(0).getPlayerDescriptions().get(0).getName());
		} catch (InvalidGamesRequest e) {
			fail("Failed to accept valid joinGame request.");
		}
		
		boolean invalid = false;
		try {
			invalid = !games.joinGame(new JoinGameRequest(0, "invalid"), "TestUser", 999);
		} catch (InvalidGamesRequest e) {
			invalid = true;
		}
		assertTrue("Failed to catch invalid color in join game request.", invalid);
		
		invalid = false;
		try {
			invalid = !games.joinGame(new JoinGameRequest(0, "blue"), "Bobby", 0);
		} catch (InvalidGamesRequest e) {
			invalid = true;
		}
		System.out.println(invalid);
		assertTrue("Failed to catch duplicate color (already in use by another player) in join game request.", invalid);
	
		invalid = false;
		try {
			invalid = !games.joinGame(new JoinGameRequest(1, "brown"), "TestUser", 11);
		} catch (InvalidGamesRequest e) {
			invalid = true;
		}
		assertTrue("Failed to catch/deny user request to join full game.", invalid);
	}