Package org.mom4j.jms

Source Code of org.mom4j.jms.JmsTestCase

/*
* Created on Nov 12, 2004
*
*/
package org.mom4j.jms;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import javax.naming.Context;

import org.mom4j.config.ConfigImpl;
import org.mom4j.messaging.Console;
import org.mom4j.messaging.MessagingServer;

import junit.framework.TestCase;

/**
* @author denninger
*/
public class JmsTestCase extends TestCase {

  private static final Object mutex = new Object();

  private static Console server = null;

  private static int testCount = 0;

  protected Properties namingProps;

  private static Map testCases = Collections.synchronizedMap(new HashMap());

  /** Creates new JmsTestCase */
  public JmsTestCase(String name) {
    super(name);

    Class c = this.getClass();
    java.lang.reflect.Method[] methods = c.getDeclaredMethods();
    for (int i = 0; i < methods.length; i++) {
      int mod = methods[i].getModifiers();
      if (java.lang.reflect.Modifier.isPublic(mod)
          && !java.lang.reflect.Modifier.isStatic(mod)
          && !java.lang.reflect.Modifier.isAbstract(mod)
          && methods[i].getReturnType().getName().equals("void")
          && methods[i].getName().startsWith("test")) {
        JmsTestCase.testCases.put(c.getName() + "#" + methods[i].getName(),
                                           methods[i].getName());
      }
    }
  }

  public void setUp() throws Exception {
    if (JmsTestCase.server == null) {
      synchronized (JmsTestCase.mutex) {
        if (JmsTestCase.server == null) {
          MessagingServer ms = new MessagingServer(new ConfigImpl(
              "./config/mom4j-config.xml"));
          JmsTestCase.server = ms.start(false);
          if (!JmsTestCase.server.hasTopic("testTopic")) {
            JmsTestCase.server.createTopic("testTopic");
          }
        }
      }
    }
    namingProps = new Properties();
    namingProps.put(Context.INITIAL_CONTEXT_FACTORY,
        "org.mom4j.jndi.InitialCtxFactory");
    namingProps.put(Context.PROVIDER_URL, "xcp://localhost:8001");
    JmsTestCase.testCount++;
  }

  public void tearDown() {
    if (JmsTestCase.testCount == JmsTestCase.testCases.size()) {
      JmsTestCase.server.stop();
      JmsTestCase.server = null;
    }
  }

}
TOP

Related Classes of org.mom4j.jms.JmsTestCase

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.