package com.fdar.apress.s2.actions.user;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.jmock.core.Constraint;
import com.fdar.apress.s2.services.UserService;
import com.fdar.apress.s2.domain.User;
import com.opensymphony.xwork2.Action;
public class UpdateUserTestCase extends MockObjectTestCase {
public UpdateUserTestCase() {
super();
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testPersistNewUser() throws Exception {
Mock service = new Mock(UserService.class);
service.expects(once()).method("persist")
.with(isA(User.class),eq(null));
UpdateUserAction action = new UpdateUserAction();
action.setUserService((UserService)service.proxy());
action.prepare();
assertEquals(Action.SUCCESS,action.execute());
service.verify();
}
public void testPersistExistingUser() throws Exception {
User user = new User();
Mock service = new Mock(UserService.class);
service.expects(once()).method("findByEmail")
.with(eq("bob@test.com"))
.will(returnValue(user));
service.expects(once()).method("persist")
.with(same(user),eq("bob@test.com"));
UpdateUserAction action = new UpdateUserAction();
action.setUserService((UserService)service.proxy());
action.setEmailId("bob@test.com");
action.prepare();
assertEquals(Action.SUCCESS,action.execute());
service.verify();
}
}