package com.faforever.client.game; import com.faforever.client.fx.MouseEvents; import com.faforever.client.i18n.I18n; import com.faforever.client.map.MapService; import com.faforever.client.test.AbstractPlainJavaFxTest; import javafx.scene.input.MouseButton; import javafx.scene.layout.Pane; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.springframework.context.ApplicationContext; import java.util.function.Consumer; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class GameTileControllerTest extends AbstractPlainJavaFxTest { @Mock GameService gameService; private GameTileController instance; @Mock private JoinGameHelper joinGameHelper; @Mock private ApplicationContext applicationContext; @Mock private I18n i18n; @Mock private MapService mapService; @Mock private GameTooltipController gameTooltipController; private GameInfoBean gameInfoBean; @Mock private Consumer<GameInfoBean> onSelectedConsumer; @Before public void setUp() throws Exception { instance = loadController("game_tile.fxml"); instance.gameService = gameService; instance.applicationContext = applicationContext; instance.i18n = i18n; instance.mapService = mapService; instance.joinGameHelper = joinGameHelper; gameInfoBean = GameInfoBeanBuilder.create().defaultValues().get(); when(applicationContext.getBean(GameTooltipController.class)).thenReturn(gameTooltipController); when(gameTooltipController.getRoot()).thenReturn(new Pane()); when(i18n.get(anyString())).thenReturn("test"); instance.initialize(); instance.postConstruct(); instance.setOnSelectedListener(onSelectedConsumer); instance.setGameInfoBean(gameInfoBean); } @Test public void testOnLeftDoubleClick() { instance.onClick(MouseEvents.generateClick(MouseButton.PRIMARY, 2)); verify(joinGameHelper).join(any()); verify(onSelectedConsumer).accept(gameInfoBean); } @Test public void testOnLeftSingleClick() { instance.onClick(MouseEvents.generateClick(MouseButton.PRIMARY, 1)); verify(joinGameHelper, never()).join(any()); verify(onSelectedConsumer).accept(gameInfoBean); } }