Package com.agiletec.plugins.jpnewsletter.aps

Source Code of com.agiletec.plugins.jpnewsletter.aps.ApsPluginBaseTestCase

/*
*
* 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.jpnewsletter.aps;

import java.util.Iterator;

import javax.sql.DataSource;

import com.agiletec.ConfigTestUtils;
import com.agiletec.aps.BaseTestCase;
import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.services.baseconfig.ConfigInterface;
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.jpnewsletter.PluginConfigTestUtils;
import com.agiletec.plugins.jpnewsletter.aps.system.JpnewsletterSystemConstants;
import com.agiletec.plugins.jpnewsletter.aps.system.services.newsletter.model.NewsletterConfig;
import com.agiletec.plugins.jpnewsletter.aps.system.services.newsletter.model.NewsletterContentType;
import com.agiletec.plugins.jpnewsletter.util.JpnewsletterTestHelper;
import org.entando.entando.aps.system.services.userprofile.IUserProfileManager;

public class ApsPluginBaseTestCase extends BaseTestCase {
 
  @Override
  protected ConfigTestUtils getConfigUtils() {
    return new PluginConfigTestUtils();
  }
 
  @Override
  protected void setUp() throws Exception {
        super.setUp();
        this.init();
        this.activeMailManager(false);
    }
 
  public NewsletterConfig createNewsletterConfig() {
    NewsletterConfig config = new NewsletterConfig();
    config.setSenderCode("senderCode");
    config.setMailAttrName("mailAttrName");
    config.setAlsoHtml(false);
    config.setUnsubscriptionPageCode("newsletter_unsubscribe");
    config.setSubject("subject");
    config.setHtmlHeader("htmlHeader");
    config.setHtmlFooter("htmlFooter");
    config.setHtmlSeparator("htmlSeparator");
    config.setTextHeader("textHeader");
    config.setTextFooter("textFooter");
    config.setTextSeparator("textSeparator");
    config.setSubscribersHtmlFooter("Clicca sul link per cancellare la sottoscrizione <a href=\"{unsubscribeLink}\" >CONFERMA</a></body></html>");
    config.setSubscribersTextFooter("Clicca sul link {unsubscribeLink} per cancellare la sottoscrizione");
   
    config.setSubscriptionPageCode("newsletter_terminatereg");
    config.setSubscriptionTokenValidityDays(90);
    config.setSubscriptionSubject("Conferma la sottoscrizione al servizio di Newsletter");
    config.setSubscriptionHtmlBody("<p>Clicca sul link per confermare <a href=\"{subscribeLink}\" >***CONFERMA***</a></p>");
    config.setSubscriptionTextBody("Clicca sul link {subscribeLink} per confermare");
   
    config.setAllContentsAttributeName("allContentsSubscription");
    config.addSubscription("Attach", "attachAttribute");
    config.addSubscription("Image", "imageAttribute");
    NewsletterContentType contentType = new NewsletterContentType();
    contentType.setContentTypeCode("EVN");
    contentType.setHtmlModel(1);
    contentType.setSimpleTextModel(2);
    config.addContentType(contentType);
    contentType = new NewsletterContentType();
    contentType.setContentTypeCode("ART");
    contentType.setHtmlModel(1);
    contentType.setSimpleTextModel(2);
    config.addContentType(contentType);
    return config;
  }
 
  public void compareConfigs(NewsletterConfig conf1, NewsletterConfig conf2) {
    assertEquals(conf1.getSenderCode(), conf2.getSenderCode());
    assertEquals(conf1.getMailAttrName(), conf2.getMailAttrName());
    assertEquals(conf1.isAlsoHtml(), conf2.isAlsoHtml());
    assertEquals(conf1.getUnsubscriptionPageCode(), conf2.getUnsubscriptionPageCode());
    assertEquals(conf1.getSubject(), conf2.getSubject());
    assertEquals(conf1.getHtmlHeader(), conf2.getHtmlHeader());
    assertEquals(conf1.getHtmlFooter(), conf2.getHtmlFooter());
    assertEquals(conf1.getHtmlSeparator(), conf2.getHtmlSeparator());
    assertEquals(conf1.getTextHeader(), conf2.getTextHeader());
    assertEquals(conf1.getTextFooter(), conf2.getTextFooter());
    assertEquals(conf1.getTextSeparator(), conf2.getTextSeparator());
    assertEquals(conf1.getSubscribersTextFooter(), conf2.getSubscribersTextFooter());
    assertEquals(conf1.getSubscribersHtmlFooter(), conf2.getSubscribersHtmlFooter());

    assertEquals(conf1.getSubscriptionPageCode(), conf2.getSubscriptionPageCode());
    assertEquals(conf1.getSubscriptionTokenValidityDays(), conf2.getSubscriptionTokenValidityDays());
    assertEquals(conf1.getSubscriptionSubject(), conf2.getSubscriptionSubject());
    assertEquals(conf1.getSubscriptionHtmlBody(), conf2.getSubscriptionHtmlBody());
    assertEquals(conf1.getSubscriptionTextBody(), conf2.getSubscriptionTextBody());
   
    assertEquals(conf1.getAllContentsAttributeName(), conf2.getAllContentsAttributeName());
    assertEquals(conf1.getSubscriptions().size(), conf2.getSubscriptions().size());
    Iterator subscriptions = conf1.getSubscriptions().keySet().iterator();
    while (subscriptions.hasNext()) {
      String category = (String) subscriptions.next();
      assertEquals(conf1.getSubscriptions().get(category), conf2.getSubscriptions().get(category));
    }
   
    assertEquals(conf1.getContentTypes().size(), conf2.getContentTypes().size());
    Iterator contentTypes = conf1.getContentTypes().keySet().iterator();
    while (contentTypes.hasNext()) {
      String contentTypeCode = (String) contentTypes.next();
      NewsletterContentType ct1 = conf1.getContentType(contentTypeCode);
      NewsletterContentType ct2 = conf2.getContentType(contentTypeCode);
     
      assertEquals(ct1.getContentTypeCode(), ct2.getContentTypeCode());
      assertEquals(ct1.getSimpleTextModel(), ct2.getSimpleTextModel());
      assertEquals(ct1.getHtmlModel(), ct2.getHtmlModel());
    }
  }
 
  protected void checkOriginaryConfig(NewsletterConfig config) {
    assertEquals(2, config.getSubscriptions().size());
    assertNull(config.getAllContentsAttributeName());
    assertEquals("boolean1", config.getSubscriptions().getProperty("cat1"));
    assertEquals("boolean2", config.getSubscriptions().getProperty("evento"));
   
    assertEquals(1, config.getContentTypes().size());
    NewsletterContentType contentType = config.getContentType("ART");
    assertEquals("ART", contentType.getContentTypeCode());
    assertEquals(2, contentType.getSimpleTextModel());
    assertEquals(3, contentType.getHtmlModel());
   
    assertEquals("CODE1", config.getSenderCode());
    assertEquals("email", config.getMailAttrName());
    assertEquals(true, config.isAlsoHtml());
    assertEquals("Oggetto della mail", config.getSubject());
   
    assertEquals("<strong>Header html della mail</strong>", config.getHtmlHeader());
    assertEquals("<strong>Footer html della mail</strong>", config.getHtmlFooter());
    assertEquals("Separatore html della mail", config.getHtmlSeparator());
    assertEquals("Header text della mail", config.getTextHeader());
    assertEquals("Footer text della mail", config.getTextFooter());
    assertEquals("Separatore text della mail", config.getTextSeparator());
  }
 
    protected void init() throws Exception {
      try {
        IUserManager userManager = (IUserManager) this.getService(SystemConstants.USER_MANAGER);
        IUserProfileManager profileManager = (IUserProfileManager) this.getService(SystemConstants.USER_PROFILE_MANAGER);
        ConfigInterface configManager = (ConfigInterface) this.getService(SystemConstants.BASE_CONFIG_MANAGER);
        this._helper = new JpnewsletterTestHelper(userManager, profileManager, configManager);
        DataSource dataSource = (DataSource) this.getApplicationContext().getBean("servDataSource");
        this._helper.setDataSource(dataSource);
    } catch (Exception e) {
      throw e;
    }
    }
   
  @Override
  protected void tearDown() throws Exception {
    this.waitForSentNewsletter();
    this.activeMailManager(true);
    super.tearDown();
  }
 
  protected void waitForSentNewsletter() throws Exception {
    Thread[] threads = new Thread[40];
      Thread.enumerate(threads);
      for (int i=0; i<threads.length; i++) {
        Thread currentThread = threads[i];
        if (currentThread != null &&
            (currentThread.getName().startsWith(JpnewsletterSystemConstants.NEWSLETTER_SENDER_THREAD_NAME)
                || currentThread.getName().startsWith(JpnewsletterSystemConstants.EMAIL_SENDER_NAME_THREAD_PREFIX))
            ) {
          currentThread.join();
        }
      }
  }
 
    private void activeMailManager(boolean active) {
    IMailManager mailManager = (IMailManager) this.getService(JpmailSystemConstants.MAIL_MANAGER);
    if (mailManager instanceof MailManager) {
      ((MailManager) mailManager).setActive(active);
    }
  }
   
  protected JpnewsletterTestHelper _helper;
 
}
TOP

Related Classes of com.agiletec.plugins.jpnewsletter.aps.ApsPluginBaseTestCase

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.