    1   /***
    2    * JFoxSOAF, Service-Oriented Application Framework
    3    *
    4    * Copyright (C) www.huihoo.org
    5    *
    6    * Distributable under GNU LGPL For more information, please visit:
    7    * http://www.huihoo.org/jfox/jfoxsoaf
    8    */
    9
    10  package org.huihoo.jfox.soaf.container;
    11
    12  import junit.framework.TestCase;
    13
    14  /***
    15   * JUnit test case for the
    16   * {@link org.huihoo.jfox.soaf.container.ServiceContainerInceptor).
    17   *
    18   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    19   * @version $Revision: 1.3 $ $Date: 2004/10/28 15:28:35 $
    20   * @version Revision: 1.0
    21   */
    22
    23  public class ServiceContainerInterceptorTest extends TestCase {
    24
    25      private ServiceEntry serviceEntryBoyWithID = new MockServiceEntry();
    26
    27      private ServiceEntry serviceEntryBoyWithoutID = new MockServiceEntry();
    28
    29      private ServiceInterceptor serviceInterceptor = new ServiceContainerInterceptor();
    30
    31      private ClassLoader cl = Thread.currentThread().getContextClassLoader();
    32
    33      private ServiceFactory serviceFactory = ServiceFactory.getInstance();
    34
    35      /***
    36       * @see TestCase#setUp()
    37       */
    38      protected void setUp() throws Exception {
    39          super.setUp();
    40
    41      }
    42
    43      /***
    44       * @see TestCase#tearDown()
    45       */
    46      protected void tearDown() throws Exception {
    47          super.tearDown();
    48      }
    49
    50      /***
    51       * Test for void invoke()
    52       */
    53      public void testInvoke() {
    54          serviceEntryBoyWithoutID
    55                  .setImplementation(Boy.class.getName());
    56          serviceEntryBoyWithoutID.setManageable("false");
    57          serviceEntryBoyWithoutID
    58                  .setInterface(Kissable.class.getName());
    59          try {
    60              serviceInterceptor.invoke(serviceEntryBoyWithoutID);
    61          } catch (Throwable e) {
    62              e.printStackTrace();
    63          }
    64          assertNotNull(serviceFactory.getService(Boy.class));
    65          assertNotNull(serviceFactory.getService(Kissable.class));
    66          serviceFactory.unRegisterService(Boy.class.getName());
    67          assertNull(serviceFactory.getService(Boy.class));
    68          assertNull(serviceFactory.getService(Kissable.class));
    69      }
    70
    71      /***
    72       * Test for void invoke() with ID
    73       */
    74      public void testInvokeWithID() {
    75
    76          serviceEntryBoyWithID.setId("Boy");
    77          serviceEntryBoyWithID
    78                  .setImplementation("org.huihoo.jfox.soaf.container.Boy");
    79          serviceEntryBoyWithID.setManageable("false");
    80          serviceEntryBoyWithID
    81                  .setInterface("org.huihoo.jfox.soaf.container.Kissable");
    82          try {
    83              serviceInterceptor.invoke(serviceEntryBoyWithID);
    84          } catch (Throwable e) {
    85              e.printStackTrace();
    86          }
    87          assertNotNull(serviceFactory.getService(Boy.class));
    88          assertNotNull(serviceFactory.getService(Kissable.class));
    89          assertNotNull(serviceFactory.getService("Boy"));
    90      }
    91
    92  }