package org.jboss.seam.example.seamdiscs.test;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.PASSWORD;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.USERNAME;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.WRONG_PASSWORD;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.WRONG_USERNAME;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.OverProtocol;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.seam.mock.DBJUnitSeamTest;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.runner.RunWith;
import org.junit.Test;
/**
* @author Pete Muir
*
*/
@RunWith(Arquillian.class)
public class LoginTest extends DBJUnitSeamTest {
@Deployment(name="LoginTest")
@OverProtocol("Servlet 3.0")
public static Archive<?> createDeployment()
{
EnterpriseArchive er = Deployments.seamdiscsDeployment();
WebArchive web = er.getAsType(WebArchive.class, "seamdiscs-web.war");
web.addClasses(LoginTest.class);
return er;
}
@Override
protected void prepareDBUnitOperations() {
setDatabase("HSQL");
setDatasourceJndiName("java:/jboss/seamdiscsDatasource");
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testLogin() throws Exception
{
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", WRONG_PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", WRONG_USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", WRONG_USERNAME);
setValue("#{identity.password}", WRONG_PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
}
}