Package com.agiletec.plugins.jpmail.apsadmin.mail

Source Code of com.agiletec.plugins.jpmail.apsadmin.mail.TestMailSenderConfigAction

/*
*
* 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.jpmail.apsadmin.mail;

import java.util.List;
import java.util.Map;

import com.agiletec.plugins.jpmail.apsadmin.ApsAdminPluginBaseTestCase;
import com.agiletec.plugins.jpmail.util.JpmailTestHelper;

import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.services.baseconfig.ConfigInterface;
import com.agiletec.apsadmin.system.ApsAdminSystemConstants;
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.MailConfig;

import com.opensymphony.xwork2.Action;

public class TestMailSenderConfigAction extends ApsAdminPluginBaseTestCase {
 
  @Override
  protected void setUp() throws Exception {
        super.setUp();
        this.init();
    }
 
  public void testViewSenders() throws Throwable {
    this.setUserOnSession("admin");
    this.initAction("/do/jpmail/MailConfig", "viewSenders");
    String result = this.executeAction();
    assertEquals(Action.SUCCESS, result);
    MailSenderConfigAction action = (MailSenderConfigAction) this.getAction();
    MailConfig mailConfig = action.getConfig();
    this.checkOriginaryConfig(mailConfig);
  }
 
  public void testNewSender() throws Throwable {
    this.setUserOnSession("admin");
    this.initAction("/do/jpmail/MailConfig", "newSender");
    String result = this.executeAction();
    assertEquals(Action.SUCCESS, result);
    MailSenderConfigAction action = (MailSenderConfigAction) this.getAction();
    assertEquals(ApsAdminSystemConstants.ADD, action.getStrutsAction());
  }
 
  public void testEditSender() throws Throwable {
    String result = this.executeEditSender("admin", "CODE2");
    assertEquals(Action.SUCCESS, result);
    MailSenderConfigAction action = (MailSenderConfigAction) this.getAction();
    assertEquals(ApsAdminSystemConstants.EDIT, action.getStrutsAction());
    assertEquals("CODE2", action.getCode());
    assertEquals("EMAIL2@EMAIL.COM", action.getMail());
   
    result = this.executeEditSender("admin", "CODE100");
    assertEquals(Action.ERROR, result);
  }
 
  public void testSaveSenderFailure() throws Throwable {
    String currentUser = "admin";
   
    String result = this.executeSaveSender(currentUser, "CODE1", "", ApsAdminSystemConstants.ADD);
    assertEquals(Action.INPUT, result);
    Map<String, List<String>> fieldErrors = this.getAction().getFieldErrors();
    assertEquals(2, fieldErrors.size());
    List codeErrors = fieldErrors.get("code");
    assertEquals(1, codeErrors.size());
    assertTrue(((String) codeErrors.get(0)).contains(this.getAction().getText("error.config.sender.code.duplicated")));
    List mailErrors = fieldErrors.get("mail");
    assertEquals(1, mailErrors.size());
    assertTrue(((String) mailErrors.get(0)).contains(this.getAction().getText("requiredstring")));
   
    result = this.executeSaveSender(currentUser, "CODE2", "wrongMailAddress", ApsAdminSystemConstants.EDIT);
    assertEquals(Action.INPUT, result);
    fieldErrors = this.getAction().getFieldErrors();
    assertEquals(1, fieldErrors.size());
    mailErrors = fieldErrors.get("mail");
    assertEquals(1, mailErrors.size());
    assertTrue(((String) mailErrors.get(0)).contains(this.getAction().getText("error.config.sender.mail.notValid")));
  }
 
  public void testSaveSenderSuccessful() throws Throwable {
    String currentUser = "admin";
    try {
      String result = this.executeSaveSender(currentUser, "CODE1", "\"Indirizzo di Prova\" <mail@addresstest.it>", ApsAdminSystemConstants.EDIT);
      assertEquals(Action.SUCCESS, result);
      MailConfig config = this._mailManager.getMailConfig();
      assertNotNull(config.getSender("CODE1"));
      assertEquals("\"Indirizzo di Prova\" <mail@addresstest.it>", config.getSender("CODE1"));
    } catch (Throwable t) {
      throw t;
    } finally {
      this._helper.resetConfig();
    }
  }
 
  public void testTrashSender() throws Throwable {
    this.setUserOnSession("admin");
    this.initAction("/do/jpmail/MailConfig", "trashSender");
    this.addParameter("code", "CODE1");
    String result = this.executeAction();
    assertEquals(Action.SUCCESS, result);
    MailConfig config = this._mailManager.getMailConfig();
    assertNotNull(config.getSender("CODE1"));
    assertNotNull(config.getSender("CODE2"));
  }
 
  public void testDeleteSender() throws Throwable {
    try {
      this.setUserOnSession("admin");
      this.initAction("/do/jpmail/MailConfig", "deleteSender");
      this.addParameter("code", "CODE1");
      String result = this.executeAction();
      assertEquals(Action.SUCCESS, result);
      MailConfig config = this._mailManager.getMailConfig();
      assertNull(config.getSender("CODE1"));
      assertNotNull(config.getSender("CODE2"));
    } catch (Throwable t) {
      throw t;
    } finally {
      this._helper.resetConfig();
    }
  }
 
  private void checkOriginaryConfig(MailConfig mailConfig) {
    assertEquals(2, mailConfig.getSenders().size());
    assertEquals("EMAIL1@EMAIL.COM", mailConfig.getSender("CODE1"));
    assertEquals("EMAIL2@EMAIL.COM", mailConfig.getSender("CODE2"));
    assertEquals(true, mailConfig.isDebug());
    assertTrue(mailConfig.getSmtpHost().length()>0);
    assertNotNull(mailConfig.getSmtpUserName());
    assertNotNull(mailConfig.getSmtpPassword());
  }
 
  private String executeEditSender(String currentUser, String code) throws Throwable {
    this.setUserOnSession(currentUser);
    this.initAction("/do/jpmail/MailConfig", "editSender");
    this.addParameter("code", code);
    String result = this.executeAction();
    return result;
  }
 
  private String executeSaveSender(String currentUser, String code, String mail, int strutsAction) throws Throwable {
    this.setUserOnSession(currentUser);
    this.initAction("/do/jpmail/MailConfig", "saveSender");
    this.addParameter("code", code);
    this.addParameter("mail", mail);
    this.addParameter("strutsAction", String.valueOf(strutsAction));
    String result = this.executeAction();
    return result;
  }
 
    private void init() throws Exception {
      try {
        ConfigInterface configManager = (ConfigInterface) this.getService(SystemConstants.BASE_CONFIG_MANAGER);
        this._mailManager = (IMailManager) this.getService(JpmailSystemConstants.MAIL_MANAGER);
        this._helper = new JpmailTestHelper(configManager, this._mailManager);
    } catch (Exception e) {
      throw e;
    }
    }
 
    private JpmailTestHelper _helper;
    private IMailManager _mailManager;
 
}
TOP

Related Classes of com.agiletec.plugins.jpmail.apsadmin.mail.TestMailSenderConfigAction

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.