package net.sf.gazpachoquest.repository;
import static org.fest.assertions.api.Assertions.assertThat;
import java.util.List;
import net.sf.gazpachoquest.domain.core.Breadcrumb;
import net.sf.gazpachoquest.domain.core.QuestionBreadcrumb;
import net.sf.gazpachoquest.domain.core.SectionBreadcrumb;
import net.sf.gazpachoquest.test.dbunit.support.ColumnDetectorXmlDataSetLoader;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
import com.github.springtestdbunit.DbUnitTestExecutionListener;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import com.github.springtestdbunit.annotation.DatabaseTearDown;
import com.github.springtestdbunit.annotation.DbUnitConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/jpa-test-context.xml", "classpath:/datasource-test-context.xml" })
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class, DbUnitTestExecutionListener.class })
@DatabaseSetup("BreadcrumbRepository-dataset.xml")
@DatabaseTearDown("BreadcrumbRepository-dataset.xml")
@DbUnitConfiguration(dataSetLoader = ColumnDetectorXmlDataSetLoader.class)
public class BreadcrumbRepositoryTest {
@Autowired
private BreadcrumbRepository repository;
@Autowired
private QuestionnaireRepository questionnaireRepository;
@Test
public void findByQuestionnaireIdAndPositionTest() {
Integer questionnaireId = 58;
Integer position = 1;
Breadcrumb next = repository.findByQuestionnaireIdAndPosition(questionnaireId, position);
assertThat(next).isEqualTo(QuestionBreadcrumb.with().id(3).build());
}
@Test
public void findLastAndPositionTest() {
Integer questionnaireId = 58;
List<Object[]> next = repository.findLastAndPosition(questionnaireId);
assertThat(next).hasSize(1);
assertThat(next.get(0)).isEqualTo(new Object[] { SectionBreadcrumb.with().id(3).build(), 1 });
}
}