package com.sap.pto.services;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.joda.time.DateTimeUtils;
import org.junit.Before;
import org.junit.Test;
import com.sap.pto.dao.FixtureDAO;
import com.sap.pto.dao.PredictionDAO;
import com.sap.pto.dao.entities.Fixture;
import com.sap.pto.dao.entities.Prediction;
import com.sap.pto.dao.entities.Fixture.Result;
import com.sap.pto.services.FixtureService;
import com.sap.pto.testutil.PTOTest;
@SuppressWarnings("nls")
public class FixtureServiceTest extends PTOTest {
private FixtureService fixtureService;
@Before
public void setup() throws Exception {
prepareTest();
fixtureService = new FixtureService();
fixtureService.request = requestMock;
DateTimeUtils.setCurrentMillisFixed(testDay.getMillis());
setupSampleData();
}
@Test
public void testGetAllFixtures() throws Exception {
List<Fixture> allFixtures = fixtureService.getAllFixtures();
assertEquals(2, allFixtures.size());
assertEquals(0, allFixtures.get(0).getPredictions().size());
}
@Test
public void testGetAllFixturesWithPredictions() throws Exception {
PredictionDAO.saveNew(new Prediction(simpleUser, fixture1_2, Result.DRAW));
PredictionDAO.saveNew(new Prediction(simpleUser, fixture3_4, Result.AWAYWIN));
List<Fixture> allFixtures = fixtureService.getAllFixtures();
assertEquals(1, allFixtures.get(0).getPredictions().size());
}
@Test
public void testGetAllFixturesWithPredictionsTwice() throws Exception {
importMatches();
fixtureService.getAllFixtures();
assertEquals(new FixtureDAO().getCount(), new PredictionDAO().getCount());
fixtureService.getAllFixtures();
assertEquals(new FixtureDAO().getCount(), new PredictionDAO().getCount());
}
@Test
public void testGetFutureFixtures() throws Exception {
DateTimeUtils.setCurrentMillisFixed(testDay.minusDays(1).getMillis());
List<Fixture> fixtures = fixtureService.getFutureFixtures();
assertEquals(2, fixtures.size());
DateTimeUtils.setCurrentMillisFixed(testDay.plusDays(1).getMillis());
fixtures = fixtureService.getFutureFixtures();
assertEquals(0, fixtures.size());
}
@Test
public void testPastFixtures() throws Exception {
List<Fixture> fixtures = fixtureService.getPastFixtures();
assertEquals(0, fixtures.size());
DateTimeUtils.setCurrentMillisFixed(testDay.plusDays(1).getMillis());
fixtures = fixtureService.getPastFixtures();
assertEquals(2, fixtures.size());
}
}