//$Id: ChangePasswordTest.java 5810 2007-07-16 06:46:47Z gavin $
package org.jboss.seam.example.booking.test;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
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.Component;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
import org.jboss.seam.core.Manager;
import org.jboss.seam.example.booking.ChangePassword;
import org.jboss.seam.example.booking.User;
import org.jboss.seam.security.Identity;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class ChangePasswordTest
{
@Deployment(name="ChangePasswordTest")
@OverProtocol("Servlet 3.0")
public static Archive<?> createDeployment()
{
EnterpriseArchive er = Deployments.bookingDeployment();
WebArchive web = er.getAsType(WebArchive.class, "booking-web.war");
web.addClasses(ChangePasswordTest.class);
return er;
}
@Before
public void before() {
Lifecycle.beginCall();
}
@After
public void after() {
Lifecycle.endCall();
}
@Test
public void testChangePassword() throws Exception
{
Identity identity = Identity.instance();
Contexts.getSessionContext().set("user", new User("Gavin King", "foobar", "gavin"));
identity.setUsername("gavin");
identity.setPassword("foobar");
identity.login();
User user = (User)Component.getInstance("user");
assertEquals("Gavin King", user.getName());
assertEquals("gavin", user.getUsername());
assertEquals("foobar", user.getPassword());
assertFalse(Manager.instance().isLongRunningConversation());
assertTrue(identity.isLoggedIn());
user.setPassword("xxxyyy");
ChangePassword changePassword = (ChangePassword)Component.getInstance("changePassword");
changePassword.setVerify("xxyyyx");
changePassword.changePassword();
user = (User)Component.getInstance("user");
assertEquals("Gavin King", user.getName());
assertEquals("gavin", user.getUsername());
assertEquals("foobar", user.getPassword());
assertFalse(Manager.instance().isLongRunningConversation());
assertTrue(identity.isLoggedIn());
user = (User)Component.getInstance("user");
user.setPassword("xxxyyy");
changePassword = (ChangePassword)Component.getInstance("changePassword");
changePassword.setVerify("xxxyyy");
changePassword.changePassword();
user = (User)Component.getInstance("user");
assertEquals("Gavin King", user.getName());
assertEquals("gavin", user.getUsername());
assertEquals("xxxyyy", user.getPassword());
assertFalse(Manager.instance().isLongRunningConversation());
assertTrue(identity.isLoggedIn());
user = (User)Component.getInstance("user");
assertEquals("xxxyyy", user.getPassword());
user.setPassword("foobar");
changePassword = (ChangePassword)Component.getInstance("changePassword");
changePassword.setVerify("foobar");
changePassword.changePassword();
user = (User)Component.getInstance("user");
assertEquals("Gavin King", user.getName());
assertEquals("gavin", user.getUsername());
assertEquals("foobar", user.getPassword());
assertFalse(Manager.instance().isLongRunningConversation());
assertTrue(identity.isLoggedIn());
}
}