Package com.agiletec.plugins.jpuserreg.aps.internalservlet.registration

Source Code of com.agiletec.plugins.jpuserreg.aps.internalservlet.registration.TestUserRegistrationAction

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando software.
* Entando is a free software;
* You can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpuserreg.aps.internalservlet.registration;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.sql.DataSource;

import com.agiletec.plugins.jpuserreg.JpUserRegTestHelper;
import com.agiletec.plugins.jpuserreg.apsadmin.ApsAdminPluginBaseTestCase;

import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.services.user.IUserManager;
import com.agiletec.plugins.jpmail.aps.services.JpmailSystemConstants;
import com.agiletec.plugins.jpmail.aps.services.mail.IMailManager;
import com.agiletec.plugins.jpmail.aps.services.mail.MailManager;
import com.agiletec.plugins.jpuserreg.aps.internalservlet.registration.UserRegistrationAction;
import com.agiletec.plugins.jpuserreg.aps.system.services.userreg.IUserRegDAO;
import com.agiletec.plugins.jpuserreg.aps.system.services.userreg.UserRegDAO;

import com.opensymphony.xwork2.Action;
import static junit.framework.Assert.assertNotNull;

/**
* @author zuanni G.Cocco
*/
public class TestUserRegistrationAction extends ApsAdminPluginBaseTestCase {
 
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    this.init();
    this.activeMailManager(false);
  }
 
  public void testInitRegistration() throws Throwable {
    String result = this.executeInitRegistration();
    assertEquals(Action.SUCCESS, result);
    UserRegistrationAction action = (UserRegistrationAction) this.getAction();
    assertNotNull(action);
  }
 
  public void testRegister() throws Throwable {
    String username = "test_user.name";
    try {
      String result = this.executeInitRegistration();// Apertura sessione
      assertEquals(Action.SUCCESS, result);
     
      Map<String, String> params = new HashMap<String, String>();
      params.put("username", username);
      params.put("Monotext:fullname", "admin admin");
      params.put("Monotext:email", JpUserRegTestHelper.EMAIL);
      params.put("emailConfirm", JpUserRegTestHelper.EMAIL);
      params.put("privacyPolicyAgreement", "true");
      params.put("Monotext:language", "it");
      params.put("Date:birthdate", "01/01/1981");
      result = this.executeRegister(params);
      assertEquals(Action.SUCCESS, result);
     
      UserRegistrationAction action = (UserRegistrationAction) this.getAction();
      Map<String, List<String>> fieldErrors = action.getFieldErrors();
      assertNotNull(fieldErrors);
      assertEquals(0, fieldErrors.size());
      Set<String> keys = fieldErrors.keySet();
      assertEquals(0, keys.size());
    } finally {
      this.getUserManager().removeUser(username);
      _userRegDAO.clearTokenByUsername(username);
    }
  }
 
  public void testRegister_Requiredfields() throws Throwable {
    String result = this.executeInitRegistration();// Apertura sessione
    assertEquals(Action.SUCCESS, result);
   
    Map<String, String> params = new HashMap<String, String>();
    result = this.executeRegister(params);
    assertEquals(Action.INPUT, result);
    UserRegistrationAction reqAccountAction = (UserRegistrationAction) this.getAction();
    Collection<String> errors = reqAccountAction.getActionErrors();
    assertNotNull(errors);
    assertEquals(0, errors.size());
    Collection<String> messages = reqAccountAction.getActionMessages();
    assertNotNull(messages);
    assertEquals(0, messages.size());
    Map<String, List<String>> fieldErrors = reqAccountAction.getFieldErrors();
    assertNotNull(fieldErrors);
    assertEquals(7, fieldErrors.size());
    List<String> error = fieldErrors.get("privacyPolicyAgreement");
    assertNotNull(error);
    error = fieldErrors.get("username");
    assertNotNull(error);
    error = fieldErrors.get("Monotext:fullname");
    assertNotNull(error);
    error = fieldErrors.get("Monotext:language");
    assertNotNull(error);
    error = fieldErrors.get("Monotext:email");
    assertNotNull(error);
    error = fieldErrors.get("Monotext:email");
    assertNotNull(error);
    error = fieldErrors.get("emailConfirm");
    assertNotNull(error);
   
    params.put("username", "user#name");
    result = this.executeRegister(params);
    assertEquals(Action.INPUT, result);
    reqAccountAction = (UserRegistrationAction) this.getAction();
    fieldErrors = reqAccountAction.getFieldErrors();
    assertEquals(7, fieldErrors.size());
    assertNotNull(fieldErrors.get("username"));
  }
 
  public void testSaveRegistration_UserAlreadyPresent() throws Throwable {
    String result = this.executeInitRegistration();// Apertura sessione
    assertEquals(Action.SUCCESS, result);
   
    Map<String, String> params = new HashMap<String, String>();
    params.put("username", "admin");
    params.put("Date:birthdate", "01/01/1981");
    result = this.executeRegister(params);
    assertEquals(Action.INPUT, result);
    UserRegistrationAction reqAccountAction = (UserRegistrationAction) this.getAction();
    Map<String, List<String>> fieldErrors = reqAccountAction.getFieldErrors();
    assertNotNull(fieldErrors);
    assertEquals(6, fieldErrors.size());
    List<String> errors = fieldErrors.get("username");
    assertNotNull(errors);
    assertEquals(1, errors.size());
    assertEquals(errors.get(0), this.getAction().getText("jpuserreg.error.duplicateUser"));
  }
 
  public void testSaveRegistration_EmailAlreadyPresent() throws Throwable {
    String username_1 = "test_user_1";
    String username_2 = "test_user_2";
    try {
      String result = this.executeInitRegistration();// Apertura sessione
      assertEquals(Action.SUCCESS, result);
     
      Map<String, String> params = new HashMap<String, String>();
      params.put("username", username_1);
      params.put("Monotext:fullname", "admin admin");
      params.put("Monotext:email", JpUserRegTestHelper.EMAIL);
      params.put("emailConfirm", JpUserRegTestHelper.EMAIL);
      params.put("privacyPolicyAgreement", "true");
      params.put("Monotext:language", "it");
      params.put("Date:birthdate", "01/01/1981");
      result = this.executeRegister(params);
      assertEquals(Action.SUCCESS, result);
      UserRegistrationAction action = (UserRegistrationAction) this.getAction();
      Map<String, List<String>> fieldErrors = action.getFieldErrors();
      assertNotNull(fieldErrors);
      assertEquals(0, fieldErrors.size());
      Set<String> keys = fieldErrors.keySet();
      assertEquals(0, keys.size());
     
      params.put("username", username_2);
      result = this.executeRegister(params);
      assertEquals("expired", result);// Sessione scaduta
     
      result = this.executeInitRegistration();// Ripristino sessione
      assertEquals(Action.SUCCESS, result);
     
      result = this.executeRegister(params);
      assertEquals(Action.INPUT, result);
      action = (UserRegistrationAction) this.getAction();
      fieldErrors = action.getFieldErrors();
      assertNotNull(fieldErrors);
      assertEquals(1, fieldErrors.size());
      assertEquals("email", (String) fieldErrors.keySet().iterator().next());
      assertEquals((fieldErrors.get("email")).get(0), action.getText("jpuserreg.error.email.alreadyInUse"));
    } finally {
      this.getUserManager().removeUser(username_1);
      _userRegDAO.clearTokenByUsername(username_1);
    }
  }
 
  private String executeInitRegistration() throws Throwable {
    this.initAction("/do/jpuserreg/UserReg", "initRegistration");
    String result = this.executeAction();
    return result;
  }
 
  private String executeRegister(Map<String, String> params) throws Throwable {
    this.initAction("/do/jpuserreg/UserReg", "register");
    this.addParameters(params);
    String result = this.executeAction();
    return result;
  }
 
  private void init() {
    this._userManager = (IUserManager) this.getService(SystemConstants.USER_MANAGER);
    DataSource dataSource = (DataSource) this.getApplicationContext().getBean("servDataSource");
    UserRegDAO userRegDAO = new UserRegDAO();
    userRegDAO.setDataSource(dataSource);
    this._userRegDAO = userRegDAO;
  }
 
  public void setUserManager(IUserManager userManager) {
    this._userManager = userManager;
  }
  public IUserManager getUserManager() {
    return _userManager;
  }
 
  @Override
  protected void tearDown() throws Exception {
    this.activeMailManager(true);
    super.tearDown();
  }
 
  private void activeMailManager(boolean active) {
    IMailManager mailManager = (IMailManager) this.getService(JpmailSystemConstants.MAIL_MANAGER);
    if (mailManager instanceof MailManager) {
      ((MailManager) mailManager).setActive(active);
    }
  }
 
  private IUserManager _userManager;
  private IUserRegDAO _userRegDAO;
 
}
TOP

Related Classes of com.agiletec.plugins.jpuserreg.aps.internalservlet.registration.TestUserRegistrationAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.