package de.flower.rmt.ui.page.event.player;
import com.mysema.query.types.Path;
import de.flower.rmt.model.db.entity.Lineup;
import de.flower.rmt.model.db.entity.event.Event;
import de.flower.rmt.service.ILineupManager;
import de.flower.rmt.test.AbstractRMTWicketMockitoTests;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.mockito.Mockito;
import org.testng.annotations.Test;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
/**
* @author flowerrrr
*/
public class LineupPanelTest extends AbstractRMTWicketMockitoTests {
@SpringBean
private ILineupManager lineupManager;
@Override
protected boolean isMockitoVerboseLogging() {
return true;
}
@Test
public void testRenderNoLineup() {
Event event = testData.newEvent();
Lineup lineup = null;
when(lineupManager.findOrCreateLineup(event)).thenReturn(lineup);
wicketTester.startComponentInPage(new LineupPanel("panel", Model.of(event)));
wicketTester.dumpComponentWithPage();
verify(lineupManager, never()).findLineupItems(any(Event.class), Mockito.<Path>anyVararg());
}
@Test
public void testRenderLineupNotPubslished() {
Event event = testData.newEvent();
Lineup lineup = testData.newLineup(event);
when(lineupManager.findOrCreateLineup(event)).thenReturn(lineup);
wicketTester.startComponentInPage(new LineupPanel("panel", Model.of(event)));
wicketTester.dumpComponentWithPage();
verify(lineupManager, never()).findLineupItems(any(Event.class), Mockito.<Path>anyVararg());
}
@Test
public void testRenderLineupAvailable() {
Event event = testData.newEvent();
Lineup lineup = testData.newLineup(event);
lineup.setPublished(true);
when(lineupManager.findOrCreateLineup(event)).thenReturn(lineup);
when(lineupManager.findLineupItems(eq(event), Mockito.<Path>anyVararg())).thenReturn(lineup.getItems());
wicketTester.startComponentInPage(new LineupPanel("panel", Model.of(event)));
wicketTester.dumpComponentWithPage();
verify(lineupManager, times(1)).findLineupItems(any(Event.class), Mockito.<Path>anyVararg());
}
}