Skip to content

Commit

Permalink
Updated test, though still not working.
Browse files Browse the repository at this point in the history
  • Loading branch information
sulikdan committed Aug 12, 2024
1 parent 62384b9 commit 0ce4e7c
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ protected void afterBuilt() {
gameTypeFilter.valueProperty().bindBidirectional(liveReplaySearchPrefs.gameTypesProperty());
featuredModFilter.valueProperty().bindBidirectional(liveReplaySearchPrefs.modNameProperty());
playerFilter.valueProperty().bindBidirectional(liveReplaySearchPrefs.playerNameProperty());

}

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
package com.faforever.client.filter;

import com.faforever.client.builders.PlayerInfoBuilder;
import com.faforever.client.domain.api.FeaturedMod;
import com.faforever.client.domain.server.GameInfo;
import com.faforever.client.domain.server.PlayerInfo;
import com.faforever.client.featuredmod.FeaturedModService;
import com.faforever.client.i18n.I18n;
import com.faforever.client.map.generator.MapGeneratorService;
import com.faforever.client.player.PlayerService;
import com.faforever.client.preferences.LiveReplaySearchPrefs;
import com.faforever.client.social.SocialService;
import com.faforever.client.test.PlatformTest;
import com.faforever.client.theme.UiService;
import com.faforever.commons.lobby.GameType;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleListProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
Expand All @@ -28,7 +34,6 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

Expand All @@ -49,41 +54,62 @@ public class LiveGamesFilterControllerTest extends PlatformTest {
private MapGeneratorService mapGeneratorService;

@Mock
private FilterCheckboxController<GameInfo> singleGamesController;
private LiveReplaySearchPrefs liveReplaySearchPrefs;

@Mock
private FilterCheckboxController<GameInfo> hideModdedGamesFilter;
@Mock
private FilterCheckboxController<GameInfo> hideSingleGamesFilter;
@Mock
private FilterCheckboxController<GameInfo> gamesWithFriendsController;
private FilterCheckboxController<GameInfo> onlyGamesWithFriendsFilter;
@Mock
private FilterMultiCheckboxController<GameType, GameInfo> gameTypeController;
private FilterCheckboxController<GameInfo> onlyGeneratedMapsFilter;

@Mock
private FilterMultiCheckboxController<GameType, GameInfo> gameTypeFilter;
@Mock
private FilterTextFieldController<GameInfo> playerNameController;
private FilterMultiCheckboxController<FeaturedMod, GameInfo> featuredModFilter;

@Mock
private FilterCheckboxController<GameInfo> generatedMapsController;
private FilterTextFieldController<GameInfo> playerNameFilter;


@InjectMocks
private LiveGamesFilterController instance;

@BeforeEach
public void setUp() throws Exception {
// Order is important
when(uiService.loadFxml(anyString())).thenReturn(
mock(FilterCheckboxController.class), // Sim mods
singleGamesController,
gamesWithFriendsController,
generatedMapsController,
gameTypeController,
mock(FilterMultiCheckboxController.class), // Featured mods
playerNameController
hideModdedGamesFilter, // Sim mods
hideSingleGamesFilter,
onlyGamesWithFriendsFilter,
onlyGeneratedMapsFilter,
gameTypeFilter,
featuredModFilter,
playerNameFilter
);
when(featuredModService.getFeaturedMods()).thenReturn(Flux.empty());

when(hideModdedGamesFilter.valueProperty()).thenReturn(new SimpleBooleanProperty());
when(hideSingleGamesFilter.valueProperty()).thenReturn(new SimpleBooleanProperty());
when(onlyGamesWithFriendsFilter.valueProperty()).thenReturn(new SimpleBooleanProperty());
when(onlyGeneratedMapsFilter.valueProperty()).thenReturn(new SimpleBooleanProperty());

when(gameTypeFilter.valueProperty()).thenReturn(new SimpleListProperty<>(FXCollections.observableArrayList()));
when(featuredModFilter.valueProperty()).thenReturn(new SimpleListProperty<>(FXCollections.observableArrayList()));

when(playerNameFilter.valueProperty()).thenReturn(new SimpleStringProperty());

loadFxml("theme/filter/filter.fxml", clazz -> instance, instance);


}

@Test
public void testGameTypeFilter() {
ArgumentCaptor<BiFunction<List<GameType>, GameInfo, Boolean>> argumentCaptor = ArgumentCaptor.forClass(
BiFunction.class);
verify(gameTypeController).registerListener(argumentCaptor.capture());
verify(gameTypeFilter).registerListener(argumentCaptor.capture());

BiFunction<List<GameType>, GameInfo, Boolean> filter = argumentCaptor.getValue();

Expand All @@ -99,7 +125,7 @@ public void testGameTypeFilter() {
@Test
public void testPlayerNameFilter() {
ArgumentCaptor<BiFunction<String, GameInfo, Boolean>> argumentCaptor = ArgumentCaptor.forClass(BiFunction.class);
verify(playerNameController).registerListener(argumentCaptor.capture());
verify(playerNameFilter).registerListener(argumentCaptor.capture());

PlayerInfo player1 = PlayerInfoBuilder.create().defaultValues().id(1).username("player1").get();
PlayerInfo player2 = PlayerInfoBuilder.create().defaultValues().id(2).username("player2").get();
Expand All @@ -122,7 +148,7 @@ public void testPlayerNameFilter() {
@Test
public void testSingleGamesFilter() {
ArgumentCaptor<BiFunction<Boolean, GameInfo, Boolean>> argumentCaptor = ArgumentCaptor.forClass(BiFunction.class);
verify(singleGamesController).registerListener(argumentCaptor.capture());
verify(hideSingleGamesFilter).registerListener(argumentCaptor.capture());

BiFunction<Boolean, GameInfo, Boolean> filter = argumentCaptor.getValue();

Expand All @@ -135,7 +161,7 @@ public void testSingleGamesFilter() {
@Test
public void testGameWithFriendsFilter() {
ArgumentCaptor<BiFunction<Boolean, GameInfo, Boolean>> argumentCaptor = ArgumentCaptor.forClass(BiFunction.class);
verify(gamesWithFriendsController).registerListener(argumentCaptor.capture());
verify(onlyGamesWithFriendsFilter).registerListener(argumentCaptor.capture());

GameInfo game = create().defaultValues().get();

Expand All @@ -151,7 +177,7 @@ public void testGameWithFriendsFilter() {
@Test
public void testGeneratedMapsFilter() {
ArgumentCaptor<BiFunction<Boolean, GameInfo, Boolean>> argumentCaptor = ArgumentCaptor.forClass(BiFunction.class);
verify(generatedMapsController).registerListener(argumentCaptor.capture());
verify(onlyGeneratedMapsFilter).registerListener(argumentCaptor.capture());

GameInfo game = create().defaultValues().get();

Expand All @@ -163,4 +189,4 @@ public void testGeneratedMapsFilter() {
assertFalse(filter.apply(true, game));
assertTrue(filter.apply(true, game));
}
}
}

0 comments on commit 0ce4e7c

Please sign in to comment.