package org.unitils.parameterized;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized.Parameters;
import org.unitils.UnitilsParameterized;
import org.unitils.easymock.EasyMockUnitils;
import org.unitils.easymock.annotation.Mock;
/**
* ParameterizedIntegrationTest.
*
* @author Jeroen Horemans
* @author Thomas De Rycke
* @author Willemijn Wouters
*
* @since 3.4
*/
@RunWith(UnitilsParameterized.class)
public class ParameterizedIntegrationTest {
@Mock
PlayerDao playerDao;
@Mock
TrophyDao trophyDao;
ChampionshipService service;
Trophy trophy;
@Before
public void setUp(){
service = new ChampionshipService();
service.setPlayerDao(playerDao);
service.setTrophyDao(trophyDao);
trophy = new Trophy();
}
@Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };
return Arrays.asList(data);
}
private int number;
/***/
public ParameterizedIntegrationTest(int number) {
this.number = number;
}
/***/
@Test
public void testChampionService() {
EasyMock.expect(trophyDao.findByChampionshipsName("spi")).andReturn(trophy);
EasyMock.expect(playerDao.getPlayersHavingTrophy(trophy)).andReturn(null);
EasyMockUnitils.replay();
service.winnersInChampionship("spi");
EasyMock.verify(trophyDao);
EasyMock.verify(playerDao);
}
@Ignore
public void testWrongChampionService() {
EasyMock.expect(trophyDao.findByChampionshipsName("spi")).andReturn(trophy);
EasyMock.expect(playerDao.getPlayersHavingTrophy(trophy)).andReturn(null);
EasyMock.expect(trophyDao.findByChampionshipsName("spi")).andReturn(trophy);
EasyMock.expect(playerDao.getPlayersHavingTrophy(trophy)).andReturn(null);
EasyMock.expect(trophyDao.findByChampionshipsName("spi")).andReturn(trophy);
EasyMock.expect(playerDao.getPlayersHavingTrophy(trophy)).andReturn(null);
EasyMockUnitils.replay();
service.winnersInChampionship("spi");
EasyMock.verify(trophyDao);
EasyMock.verify(playerDao);
}
//test classes
/***/
private class ChampionshipService {
private PlayerDao playerDao1 ;
private TrophyDao trophyDao1 ;
/**
* @param championship
* @return {@link List}*/
public List<Player> winnersInChampionship (String championship ){
Trophy trophy1 = getTrophyDao1().findByChampionshipsName(championship);
List<Player> playersThrophy = getPlayerDao1().getPlayersHavingTrophy(trophy1);
return playersThrophy ;
}
public PlayerDao getPlayerDao1() {
return playerDao1;
}
public void setPlayerDao(PlayerDao playerDao1) {
this.playerDao1 = playerDao1;
}
public TrophyDao getTrophyDao1() {
return trophyDao1;
}
public void setTrophyDao(TrophyDao trophyDao1) {
this.trophyDao1 = trophyDao1;
}
}
private interface PlayerDao {
/**
* @param trophy1
* @return {@link List}
*/
public List<Player> getPlayersHavingTrophy(Trophy trophy1);
}
private interface TrophyDao {
/**
* @param championship
* @return {@link Trophy}
*/
public Trophy findByChampionshipsName(String championship);
}
private class Player {
//just a test class
}
private class Trophy {
//just a testclass
}
}