package org.molgenis.ui.wizard;
import org.springframework.validation.BindingResult;
import org.testng.annotations.Test;
import javax.servlet.http.HttpServletRequest;
import static org.testng.Assert.*;
public class WizardTest
{
@Test
public void addPage()
{
Wizard wizard = new Wizard();
wizard.addPage(new TestWizardPage());
assertEquals(wizard.getPages().size(), 1);
}
@Test
public void getCurrentPage()
{
Wizard wizard = new Wizard();
WizardPage page = new TestWizardPage();
wizard.addPage(page);
assertEquals(wizard.getCurrentPage(), page);
}
@Test
public void getNextButton()
{
Wizard wizard = new Wizard();
wizard.addPage(new TestWizardPage());
wizard.addPage(new TestWizardPage());
WizardButton nextButton = wizard.getNextButton();
assertNotNull(nextButton);
assertTrue(nextButton.isEnabled());
assertEquals(nextButton.getTitle(), "Next");
assertEquals(nextButton.getTargetUri(), "/next");
wizard.next();
nextButton = wizard.getNextButton();
assertTrue(nextButton.isEnabled());
assertEquals(nextButton.getTitle(), "Finish");
assertEquals(nextButton.getTargetUri(), "/restart");
}
@Test
public void getPages()
{
Wizard wizard = new Wizard();
assertNotNull(wizard.getPages());
assertEquals(wizard.getPages().size(), 0);
wizard.addPage(new TestWizardPage());
assertEquals(wizard.getPages().size(), 1);
wizard.addPage(new TestWizardPage());
assertEquals(wizard.getPages().size(), 2);
}
@Test
public void getPreviousButton()
{
Wizard wizard = new Wizard();
wizard.addPage(new TestWizardPage());
WizardButton prevButton = wizard.getPreviousButton();
assertNotNull(prevButton);
assertFalse(prevButton.isEnabled());
assertEquals(prevButton.getTitle(), "Previous");
}
@Test
public void isFirstPage()
{
Wizard wizard = new Wizard();
wizard.addPage(new TestWizardPage());
wizard.addPage(new TestWizardPage());
assertTrue(wizard.isFirstPage());
wizard.next();
assertFalse(wizard.isFirstPage());
}
@Test
public void isLastPage()
{
Wizard wizard = new Wizard();
wizard.addPage(new TestWizardPage());
wizard.addPage(new TestWizardPage());
assertFalse(wizard.isLastPage());
wizard.next();
assertTrue(wizard.isLastPage());
}
@Test
public void next()
{
Wizard wizard = new Wizard();
WizardPage p1 = new TestWizardPage();
wizard.addPage(p1);
WizardPage p2 = new TestWizardPage();
wizard.addPage(p2);
assertEquals(wizard.getCurrentPage(), p1);
wizard.next();
assertEquals(wizard.getCurrentPage(), p2);
}
@Test
public void previous()
{
Wizard wizard = new Wizard();
WizardPage p1 = new TestWizardPage();
wizard.addPage(p1);
WizardPage p2 = new TestWizardPage();
wizard.addPage(p2);
wizard.next();
assertEquals(wizard.getCurrentPage(), p2);
wizard.previous();
assertEquals(wizard.getCurrentPage(), p1);
}
private static class TestWizardPage extends AbstractWizardPage
{
private static final long serialVersionUID = 1L;
@Override
public String getTitle()
{
return "test";
}
@Override
public String handleRequest(HttpServletRequest request, BindingResult result, Wizard wizard)
{
return null;
}
}
}