Package org.megatome.frame2.front.config

Source Code of org.megatome.frame2.front.config.TestEventConfigReader

/*
* ====================================================================
*
* Frame2 Open Source License
*
* Copyright (c) 2004-2007 Megatome Technologies.  All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in
*    the documentation and/or other materials provided with the
*    distribution.
*
* 3. The end-user documentation included with the redistribution, if
*    any, must include the following acknowlegement:
*       "This product includes software developed by
*        Megatome Technologies."
*    Alternately, this acknowlegement may appear in the software itself,
*    if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Frame2 Project", and "Frame2",
*    must not be used to endorse or promote products derived
*    from this software without prior written permission. For written
*    permission, please contact iamthechad@sourceforge.net.
*
* 5. Products derived from this software may not be called "Frame2"
*    nor may "Frame2" appear in their names without prior written
*    permission of Megatome Technologies.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED.  IN NO EVENT SHALL MEGATOME TECHNOLOGIES OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*/
package org.megatome.frame2.front.config;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

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

import javax.xml.validation.Schema;

import org.junit.Test;
import org.megatome.frame2.Frame2Exception;
import org.megatome.frame2.front.ForwardProxy;

public class TestEventConfigReader {

  /**
   * Method testSingleGlobalForward.
   */
  @Test
  public void testSingleGlobalForward() {

    String name = "xxx"; //$NON-NLS-1$
    String path = "xxxpath"; //$NON-NLS-1$

    EventConfigReader reader = getReader("org/megatome/frame2/front/config/globalForward-Single-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();
    assertTrue(forwards.size() == 1);
    Forward forward = forwards.get(name);
    ForwardProxy proxy = new ForwardProxy(forward);
    assertTrue(proxy.isEventType());
    assertEquals(forward.getName(), name);
    assertEquals(forward.getType(), ForwardType.EVENT);
    assertEquals(forward.getPath(), path);

  }

  /**
   * Method testMultipleGlobalForward.
   */
  @Test
  public void testMultipleGlobalForward() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/globalForward-Multiple-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();
    assertTrue(forwards.size() == 3);

    Forward forward = forwards.get("xx1"); //$NON-NLS-1$
    ForwardProxy proxy = new ForwardProxy(forward);
    assertFalse(proxy.isEventType());
    assertEquals(forward.getName(), "xx1"); //$NON-NLS-1$
    assertEquals(forward.getType(), ForwardType.HTMLRESOURCE);
    assertEquals(forward.getPath(), "xxxpath1"); //$NON-NLS-1$

    forward = forwards.get("xx2"); //$NON-NLS-1$
    proxy = new ForwardProxy(forward);
    assertTrue(proxy.isEventType());
    assertEquals(forward.getName(), "xx2"); //$NON-NLS-1$
    assertEquals(forward.getType(), ForwardType.EVENT);
    assertEquals(forward.getPath(), "xxxpath2"); //$NON-NLS-1$

    forward = forwards.get("xx3"); //$NON-NLS-1$
    proxy = new ForwardProxy(forward);
    assertFalse(proxy.isEventType());
    assertEquals(forward.getName(), "xx3"); //$NON-NLS-1$
    assertEquals(forward.getType(), ForwardType.HTMLRESOURCE);
    assertEquals(forward.getPath(), "xxxpath3"); //$NON-NLS-1$

  }

  /**
   * Method testEvents.
   */
  @Test
  public void testEvents() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/events-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();
    assertTrue(forwards.size() == 3);
    Map<String, EventDef> events = reader.getEvents();
    assertTrue(events.size() == 3);
    assertEquals(events.get("event1").getType(), //$NON-NLS-1$
        "com.frame2.event1"); //$NON-NLS-1$
    assertEquals(events.get("event2").getType(), //$NON-NLS-1$
        "com.frame2.event2"); //$NON-NLS-1$
    assertEquals(events.get("event3").getType(), //$NON-NLS-1$
        "com.frame2.event3"); //$NON-NLS-1$
  }

  /**
   * Method testEventMappings.
   */
  @SuppressWarnings("boxing")
  @Test
  public void testEventMappings() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/eventMappings-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();

    assertTrue(forwards.size() == 3);
    Map<String, EventDef> events = reader.getEvents();
    assertTrue(events.size() == 3);
    // EventMappings
    Map<String, EventMapping> eventMappings = reader.getEventMappings();
    assertTrue(eventMappings.size() == 4);
    // Test first EventMapping
    EventMapping eventMapping = eventMappings.get("eventMapping1"); //$NON-NLS-1$
    assertNotNull(eventMapping);
    List<String> handlers = eventMapping.getHandlers();
    assertTrue(handlers.size() == 3);
    int count = 0;
    for (String handler : handlers) {
      count++;
      switch (count) {
      case 1:
        assertEquals(handler, "handler1-eventMapping1"); //$NON-NLS-1$
        break;
      case 2:
        assertEquals(handler, "handler2-eventMapping1"); //$NON-NLS-1$
        break;
      case 3:
        assertEquals(handler, "handler3-eventMapping1"); //$NON-NLS-1$
        break;
      }
    }
    assertEquals(eventMapping.getInputView(), "inputView1"); //$NON-NLS-1$
    assertEquals(eventMapping.getCancelView(), "cancelView1"); //$NON-NLS-1$
    assertTrue(eventMapping.isValidate());
    assertEquals(eventMapping.getView(ViewType.HTML.toString()),
        "view1-eventMapping1"); //$NON-NLS-1$
    assertTrue(eventMapping.isUserInRole("admin")); //$NON-NLS-1$
    assertTrue(eventMapping.isUserInRole("guest")); //$NON-NLS-1$
    assertTrue(!eventMapping.isUserInRole("foo")); //$NON-NLS-1$

    String[] roles = eventMapping.getRoles();

    assertNotNull(roles);
    assertEquals(2, roles.length);
    assertEquals("admin", roles[0]); //$NON-NLS-1$
    assertEquals("guest", roles[1]); //$NON-NLS-1$

    // Test second EventMapping
    eventMapping = eventMappings.get("eventMapping2"); //$NON-NLS-1$
    assertNotNull(eventMapping);
    handlers = eventMapping.getHandlers();
    assertTrue(handlers.size() == 0);
    assertEquals(eventMapping.getInputView(), "inputView2"); //$NON-NLS-1$
    assertEquals(eventMapping.getCancelView(), null);
    assertFalse(eventMapping.isValidate());
    assertEquals(eventMapping.getView(ViewType.HTML.toString()),
        "view1-eventMapping2"); //$NON-NLS-1$
    assertTrue(!eventMapping.isUserInRole("admin")); //$NON-NLS-1$

    roles = eventMapping.getRoles();

    assertNotNull(roles);
    assertEquals(0, roles.length);

    // Test third EventMapping
    eventMapping = eventMappings.get("eventMapping3"); //$NON-NLS-1$
    assertNotNull(eventMapping);
    handlers = eventMapping.getHandlers();
    assertTrue(handlers.size() == 1);
    assertTrue(eventMapping.isValidate());
    assertNull(eventMapping.getView(ViewType.HTML.toString()));
    assertTrue(!eventMapping.isUserInRole("admin")); //$NON-NLS-1$

    // Test fourth EventMapping
    eventMapping = eventMappings.get("eventMapping4"); //$NON-NLS-1$
    assertNotNull(eventMapping);
    handlers = eventMapping.getHandlers();
    assertTrue(handlers.size() == 0);
    assertNull(eventMapping.getInputView());
    assertFalse(eventMapping.isValidate());
    assertNull(eventMapping.getView(ViewType.HTML.toString()));
    assertTrue(!eventMapping.isUserInRole("admin")); //$NON-NLS-1$
  }

  /**
   * Method testEmptyTags.
   */
  @Test
  public void testEmptyTags() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/emptyTags-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();
    assertTrue(forwards.size() == 0);
    Map<String, EventDef> events = reader.getEvents();
    assertTrue(events.size() == 0);
    Map<String, EventMapping> eventMappings = reader.getEventMappings();
    assertTrue(eventMappings.size() == 0);
    Map<String, EventHandlerDef> eventHandlers = reader.getEventHandlers();
    assertTrue(eventHandlers.size() == 0);

  }

  /**
   * Method testEventHandlers.
   */
  @Test
  public void testEventHandlers() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/eventHandlers-config.xml"); //$NON-NLS-1$

    Map<String, Forward> forwards = reader.getGlobalHTMLForwards();
    assertTrue(forwards.size() == 0);
    Map<String, EventDef> events = reader.getEvents();
    assertTrue(events.size() == 0);
    Map<String, EventMapping> eventMappings = reader.getEventMappings();
    assertTrue(eventMappings.size() == 0);
    Map<String, EventHandlerDef> eventHandlers = reader.getEventHandlers();
    assertTrue(eventHandlers.size() == 3);

    // handler1
    EventHandlerDef handler = eventHandlers.get("event-handler1"); //$NON-NLS-1$
    assertEquals(handler.getType(), "com.frame2.eventHandler1"); //$NON-NLS-1$
    assertNull(handler.getInitParam("test")); //$NON-NLS-1$
    Map<String, String> params = handler.getInitParams();
    assertTrue(params.size() == 0);

    assertEquals(handler.getHTMLForward("forward1").getPath(), "path1"); //$NON-NLS-1$ //$NON-NLS-2$

    // handler2
    handler = eventHandlers.get("event-handler2"); //$NON-NLS-1$
    assertEquals(handler.getType(), "com.frame2.eventHandler2"); //$NON-NLS-1$
    assertNull(handler.getInitParam("test")); //$NON-NLS-1$
    params = handler.getInitParams();
    assertTrue(params.size() == 0);
    assertEquals(handler.getHTMLForward("forward1").getPath(), "path1"); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(handler.getHTMLForward("forward2").getPath(), "path2"); //$NON-NLS-1$ //$NON-NLS-2$
    assertNull(handler.getHTMLForward("test1")); //$NON-NLS-1$

    // handler3
    handler = eventHandlers.get("event-handler3"); //$NON-NLS-1$
    assertEquals(handler.getType(), "com.frame2.eventHandler3"); //$NON-NLS-1$
    assertNull(handler.getInitParam("test")); //$NON-NLS-1$
    params = handler.getInitParams();
    assertTrue(params.size() == 2);
    assertEquals(handler.getInitParam("param1"), "val1"); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(handler.getInitParam("param2"), "val2"); //$NON-NLS-1$ //$NON-NLS-2$
    assertNull(handler.getHTMLForward("forward1")); //$NON-NLS-1$
  }

  @Test
  public void testPluginSingle() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/pluginTag-Single-1_1.xml"); //$NON-NLS-1$

    List<PluginDef> plugins = reader.getPlugins();
    assertTrue(plugins.size() == 1);
    PluginDef plugin = plugins.get(0);
    assertTrue(plugin.getName().equals("PluginName")); //$NON-NLS-1$
    assertTrue(plugin.getType().equals("org.megatome.something")); //$NON-NLS-1$
  }

  @Test
  public void testPluginMultiple() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/pluginTag-Mult-Param-1_1.xml"); //$NON-NLS-1$

    List<PluginDef> plugins = reader.getPlugins();
    assertTrue(plugins.size() == 3);
    PluginDef plugin = plugins.get(0);
    assertTrue(plugin.getName().equals("PluginName1")); //$NON-NLS-1$
    assertTrue(plugin.getType().equals("org.megatome.something1")); //$NON-NLS-1$
    Map<String, String> params = plugin.getInitParams();
    assertNotNull(params);
    String val = params.get("param1"); //$NON-NLS-1$
    assertTrue(val.equals("value1")); //$NON-NLS-1$

    plugin = plugins.get(1);
    assertTrue(plugin.getName().equals("PluginName2")); //$NON-NLS-1$
    assertTrue(plugin.getType().equals("org.megatome.something")); //$NON-NLS-1$
    params = plugin.getInitParams();
    assertNotNull(params);
    val = params.get("param1"); //$NON-NLS-1$
    assertTrue(val.equals("value1")); //$NON-NLS-1$
    val = params.get("param2"); //$NON-NLS-1$
    assertTrue(val.equals("value2")); //$NON-NLS-1$

    plugin = plugins.get(2);
    assertTrue(plugin.getName().equals("PluginName3")); //$NON-NLS-1$
    assertTrue(plugin.getType().equals("org.megatome.something")); //$NON-NLS-1$
    params = plugin.getInitParams();
    assertNotNull(params);
    assertTrue(params.isEmpty());
  }

  @Test
  public void testPluginMultipleDuplicate() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/pluginTag-Dup-Negative-Param-1_1.xml"); //$NON-NLS-1$

    List<PluginDef> plugins = reader.getPlugins();
    assertTrue(plugins.size() == 1);
    PluginDef plugin = plugins.get(0);
    assertTrue(plugin.getName().equals("PluginName1")); //$NON-NLS-1$
    assertTrue(plugin.getType().equals("org.megatome.something1")); //$NON-NLS-1$
    Map<String, String> params = plugin.getInitParams();
    assertNotNull(params);
    String val = params.get("param1"); //$NON-NLS-1$
    assertTrue(val.equals("value1")); //$NON-NLS-1$
  }

  @Test
  public void testNegativeDuplicateInitParam() {
    String filename = "org/megatome/frame2/front/config/pluginTag-Single-Negative-DupParam-1_1.xml"; //$NON-NLS-1$

    EventConfigReader reader = new EventConfigReader(filename);
    try {
      reader.execute();
      fail();
    } catch (Frame2Exception expected) {
      // expected
    }
  }

  @Test
  public void testReqProcEmpty() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/requestProc-Empty-1_1.xml"); //$NON-NLS-1$

    RequestProcessorDef httpRequestProcessor = reader
        .getHttpReqProcHandler();
    assertNull(httpRequestProcessor);
    RequestProcessorDef soapRequestProcessor = reader
        .getSoapReqProcHandler();
    assertNull(soapRequestProcessor);

  }

  @Test
  public void testTwoProcEmpty() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/requestProc-SoapAndHttp-1_1.xml"); //$NON-NLS-1$

    RequestProcessorDef httpRequestProcessor = reader
        .getHttpReqProcHandler();
    assertEquals(httpRequestProcessor.getType(), "httpBaby"); //$NON-NLS-1$
    RequestProcessorDef soapRequestProcessor = reader
        .getSoapReqProcHandler();
    assertEquals(soapRequestProcessor.getType(), "soap"); //$NON-NLS-1$

  }

  @Test
  public void testSchemaMappings() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/events-config.xml"); //$NON-NLS-1$

    Map<String, Schema> schemaMappings = reader.getSchemaMappings();
    assertNotNull(schemaMappings);
    assertTrue(schemaMappings.containsKey("event1")); //$NON-NLS-1$
    assertTrue(schemaMappings.containsKey("event2")); //$NON-NLS-1$
    assertFalse(schemaMappings.containsKey("event3")); //$NON-NLS-1$

    Schema s = schemaMappings.get("event1"); //$NON-NLS-1$
    assertNotNull(s);
    Schema s2 = schemaMappings.get("event2"); //$NON-NLS-1$
    assertNotNull(s2);
    assertTrue(s == s2);
  }

  @Test
  public void testSchemaMappingsDuplicateLocation() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/schema-config-dupe.xml"); //$NON-NLS-1$

    Map<String, Schema> schemaMappings = reader.getSchemaMappings();
    assertNotNull(schemaMappings);
    assertTrue(schemaMappings.containsKey("event1")); //$NON-NLS-1$
    assertTrue(schemaMappings.containsKey("event2")); //$NON-NLS-1$
    assertTrue(schemaMappings.containsKey("event3")); //$NON-NLS-1$

    Schema s = schemaMappings.get("event1"); //$NON-NLS-1$
    assertNotNull(s);
    Schema s2 = schemaMappings.get("event2"); //$NON-NLS-1$
    assertNotNull(s2);
    assertTrue(s == s2);
    Schema s3 = schemaMappings.get("event3"); //$NON-NLS-1$
    assertNotNull(s3);
    assertTrue(s == s3);
  }
 
  @Test
  public void testSchemaMappingsBadLocation() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/schema-bad-loc.xml"); //$NON-NLS-1$
   
    Map<String, Schema> schemaMappings = reader.getSchemaMappings();
    assertNotNull(schemaMappings);
    assertTrue(schemaMappings.isEmpty());
  }
 
  @Test
  public void testSchemaMultipleEvent() {
    EventConfigReader reader = getReader("org/megatome/frame2/front/config/schema-dupe-event.xml"); //$NON-NLS-1$
   
    Map<String, Schema> schemaMappings = reader.getSchemaMappings();
    assertNotNull(schemaMappings);
    Schema s = schemaMappings.get("event1"); //$NON-NLS-1$
    assertNotNull(s);
  }

  private EventConfigReader getReader(final String fileName) {
    EventConfigReader reader = new EventConfigReader(fileName);
    try {
      reader.execute();
    } catch (Frame2Exception e) {
      fail("Unexpected Exception: " + e.getMessage()); //$NON-NLS-1$
    }

    return reader;
  }

}
TOP

Related Classes of org.megatome.frame2.front.config.TestEventConfigReader

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.