/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.user;
import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.action.UserPasswordReset;
import org.jboss.seam.wiki.core.dao.UserDAO;
import org.jboss.seam.wiki.core.model.User;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.jboss.seam.wiki.util.Hash;
import org.testng.annotations.Test;
/**
* @author Christian Bauer
*/
public class ResetPasswordTests extends DBUnitSeamTest {
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
);
}
@Test
public void resetPassword() throws Exception {
new NonFacesRequest("/resetPassword.xhtml") {
protected void beforeRequest() {
setParameter("activationCode", "ebb0bce9eeeee191e8089afd1120c4a7");
}
protected void renderResponse() throws Exception {
User user = (User)getInstance(UserPasswordReset.RESET_PASSWORD_OF_USER);
assert user.getId().equals(3l);
}
}.run();
new FacesRequest("/wiki.xhtml") {
protected void invokeApplication() throws Exception {
UserPasswordReset reset = (UserPasswordReset)getInstance(UserPasswordReset.class);
reset.setPassword("foo123");
reset.setPasswordControl("foo123");
reset.reset();
}
protected void renderResponse() throws Exception {
User user = (User)getInstance(UserPasswordReset.RESET_PASSWORD_OF_USER);
assert user == null;
UserDAO dao = (UserDAO)getInstance(UserDAO.class);
User dbUser = dao.findUser(3l);
assert dbUser.getActivationCode() == null;
Hash hashUtil = (Hash)getInstance(Hash.class);
assert dbUser.getPasswordHash().equals(hashUtil.hash("foo123"));
}
}.run();
}
}