package net.sf.gazpachoquest.questionnaire.support;
import static org.fest.assertions.api.Assertions.assertThat;
import net.sf.gazpachoquest.domain.core.Breadcrumb;
import net.sf.gazpachoquest.questionnaire.support.PageMetadataCreator;
import net.sf.gazpachoquest.questionnaire.support.PageMetadataStructure;
import net.sf.gazpachoquest.services.BreadcrumbService;
import net.sf.gazpachoquest.test.dbunit.support.ColumnDetectorXmlDataSetLoader;
import net.sf.gazpachoquest.types.RandomizationStrategy;
import net.sf.gazpachoquest.types.RenderingMode;
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 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",
"classpath:/services-context.xml", "classpath:/components-context.xml", "classpath:/questionnaire-context.xml",
"classpath:/facades-context.xml" })
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class })
@DbUnitConfiguration(dataSetLoader = ColumnDetectorXmlDataSetLoader.class)
public class PageMetadataCreatorTest {
@Autowired
private PageMetadataCreator pageMetadataCreator;
@Autowired
private BreadcrumbService breadcrumbService;
@DatabaseSetup("PageMetadataCreatorTest-dataset.xml")
@DatabaseTearDown("PageMetadataCreatorTest-dataset.xml")
@Test
public void createForSectionNoRandomizationTest() {
Breadcrumb breadcrumb = breadcrumbService.findOne(201);
PageMetadataStructure metadata = pageMetadataCreator.create(RandomizationStrategy.NONE,
RenderingMode.SECTION_BY_SECTION, breadcrumb);
assertThat(metadata.getCount()).isEqualTo(3);
assertThat(metadata.getNumber()).isEqualTo(3);
}
@Test
@DatabaseSetup("PageMetadataCreatorQuestionRandomizationStrategyTest-dataset.xml")
@DatabaseTearDown("PageMetadataCreatorQuestionRandomizationStrategyTest-dataset.xml")
public void createRandomizationPerQuestionEnabledTest() {
Breadcrumb breadcrumb = breadcrumbService.findOne(103);
PageMetadataStructure metadata = pageMetadataCreator.create(RandomizationStrategy.QUESTIONS_RANDOMIZATION,
RenderingMode.SECTION_BY_SECTION, breadcrumb);
assertThat(metadata.getCount()).isEqualTo(8);
assertThat(metadata.getNumber()).isEqualTo(2);
}
}