Skip to content

Commit

Permalink
Unit test for onGameInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
micheljung committed Jul 12, 2015
1 parent 194cefa commit 445d1f7
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/main/java/com/faforever/client/game/GameInfoBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,19 +79,29 @@ public void updateFromGameInfo(GameInfo gameInfo) {
access.set(gameInfo.access);
mapName.set(gameInfo.mapname);
featuredMod.set(gameInfo.featuredMod);
numPlayers.set(gameInfo.numPlayers);
maxPlayers.set(gameInfo.maxPlayers);
numPlayers.setValue(gameInfo.numPlayers);
maxPlayers.setValue(gameInfo.maxPlayers);
gameType.set(gameInfo.gameType);
options.setAll(gameInfo.options);
status.set(gameInfo.state);

if (gameInfo.options != null) {
options.setAll(gameInfo.options);
}

simMods.clear();
simMods.putAll(gameInfo.simMods);
if (gameInfo.simMods != null) {
simMods.putAll(gameInfo.simMods);
}

teams.clear();
teams.putAll(gameInfo.teams);
if (gameInfo.teams != null) {
teams.putAll(gameInfo.teams);
}

featuredModVersions.putAll(gameInfo.featuredModVersions);
status.set(gameInfo.state);
featuredModVersions.clear();
if (gameInfo.featuredModVersions != null) {
featuredModVersions.putAll(gameInfo.featuredModVersions);
}

// TODO as this can be removed as soon as we get server side support. Until then, let's be hacky
Matcher matcher = RATING_PATTERN.matcher(title.get());
Expand Down
65 changes: 65 additions & 0 deletions src/test/java/com/faforever/client/game/GameServiceImplTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.faforever.client.fa.ForgedAllianceService;
import com.faforever.client.legacy.LobbyServerAccessor;
import com.faforever.client.legacy.domain.GameInfo;
import com.faforever.client.legacy.domain.GameLaunchInfo;
import com.faforever.client.legacy.domain.GameState;
import com.faforever.client.legacy.domain.GameTypeInfo;
import com.faforever.client.legacy.proxy.Proxy;
import com.faforever.client.map.MapService;
Expand All @@ -21,8 +23,11 @@
import java.util.concurrent.TimeUnit;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.collection.IsEmptyCollection.empty;
import static org.hamcrest.collection.IsEmptyCollection.emptyCollectionOf;
import static org.junit.Assert.*;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doAnswer;
Expand Down Expand Up @@ -157,4 +162,64 @@ public void testWaitForProcessTerminationInBackground() throws Exception {
verify(instance.proxy).close();
verify(instance.lobbyServerAccessor).notifyGameTerminated();
}

@Test
public void testOnGameInfoAdd() {
assertThat(instance.getGameInfoBeans(), empty());

GameInfo gameInfo1 = new GameInfo();
gameInfo1.uid = 1;
gameInfo1.title = "Game 1";
gameInfo1.state = GameState.OPEN;
instance.onGameInfo(gameInfo1);

GameInfo gameInfo2 = new GameInfo();
gameInfo2.uid = 2;
gameInfo2.title = "Game 2";
gameInfo2.state = GameState.OPEN;
instance.onGameInfo(gameInfo2);

GameInfoBean gameInfoBean1 = new GameInfoBean(gameInfo1);
GameInfoBean gameInfoBean2 = new GameInfoBean(gameInfo2);

assertThat(instance.getGameInfoBeans(), containsInAnyOrder(gameInfoBean1, gameInfoBean2));
}

@Test
public void testOnGameInfoModify() {
assertThat(instance.getGameInfoBeans(), empty());

GameInfo gameInfo = new GameInfo();
gameInfo.uid = 1;
gameInfo.title = "Game 1";
gameInfo.state = GameState.OPEN;
instance.onGameInfo(gameInfo);

gameInfo = new GameInfo();
gameInfo.uid = 1;
gameInfo.title = "Game 1 modified";
gameInfo.state = GameState.OPEN;
instance.onGameInfo(gameInfo);

assertEquals(gameInfo.title, instance.getGameInfoBeans().iterator().next().getTitle());
}

@Test
public void testOnGameInfoRemove() {
assertThat(instance.getGameInfoBeans(), empty());

GameInfo gameInfo = new GameInfo();
gameInfo.uid = 1;
gameInfo.title = "Game 1";
gameInfo.state = GameState.OPEN;
instance.onGameInfo(gameInfo);

gameInfo = new GameInfo();
gameInfo.uid = 1;
gameInfo.title = "Game 1 modified";
gameInfo.state = GameState.PLAYING;
instance.onGameInfo(gameInfo);

assertThat(instance.getGameInfoBeans(), empty());
}
}

0 comments on commit 445d1f7

Please sign in to comment.