1   /*
2    * $Id: CoreNamespaceRoutersTestCase.java 12058 2008-06-16 12:02:56Z rossmason $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  package org.mule.config.spring;
11  
12  import org.mule.api.routing.Router;
13  import org.mule.api.service.Service;
14  import org.mule.routing.inbound.ForwardingConsumer;
15  import org.mule.routing.inbound.IdempotentSecureHashReceiver;
16  import org.mule.routing.inbound.InboundPassThroughRouter;
17  import org.mule.routing.inbound.SelectiveConsumer;
18  import org.mule.routing.inbound.IdempotentReceiver;
19  import org.mule.tck.FunctionalTestCase;
20  import org.mule.util.store.InMemoryObjectStore;
21  import org.mule.util.store.TextFileObjectStore;
22  
23  import java.util.List;
24  
25  public class CoreNamespaceRoutersTestCase extends FunctionalTestCase
26  {
27      public String getConfigResources()
28      {
29          return "core-namespace-routers.xml";
30      }
31  
32      public void testForwardingRouter() throws Exception
33      {
34          Router r = lookupInboundRouterFromService("ForwardingRouter");
35          assertTrue(r instanceof ForwardingConsumer);
36      }
37  
38      public void testIdempotentSecureHashReceiverRouter() throws Exception
39      {
40          Router r = lookupInboundRouterFromService("IdempotentSecureHashReceiverRouter");
41          assertTrue(r instanceof IdempotentSecureHashReceiver);
42          IdempotentSecureHashReceiver router = (IdempotentSecureHashReceiver)r;
43          assertEquals("SHA-128", router.getMessageDigestAlgorithm());
44          assertNotNull(router.getStore());
45          assertTrue(router.getStore() instanceof InMemoryObjectStore);
46          InMemoryObjectStore store = (InMemoryObjectStore)router.getStore();
47          assertEquals(1001, store.getEntryTTL());
48          assertEquals(1001, store.getExpirationInterval());
49          assertEquals(1001, store.getMaxEntries());
50          assertEquals("xyz", store.getName());
51          assertNotNull(store.getScheduler());
52      }
53  
54       public void testIdempotentReceiverRouter() throws Exception
55      {
56          Router r = lookupInboundRouterFromService("IdempotentReceiverRouter");
57          assertTrue(r instanceof IdempotentReceiver);
58          IdempotentReceiver router = (IdempotentReceiver)r;
59          assertEquals("${message:id}-${message:correlationId}", router.getIdExpression());
60          assertNotNull(router.getStore());
61          assertTrue(router.getStore() instanceof TextFileObjectStore);
62          TextFileObjectStore store = (TextFileObjectStore)router.getStore();
63          assertEquals(-1, store.getEntryTTL());
64          assertEquals(1000, store.getExpirationInterval());
65          assertEquals(10000000, store.getMaxEntries());
66          assertEquals("foo", store.getDirectory());
67          assertNotNull(store.getName());
68          assertNotNull(store.getScheduler());
69      }
70  
71      public void testInboundPassThroughRouter() throws Exception
72      {
73          Router r = lookupInboundRouterFromService("InboundPassThroughRouter");
74          assertTrue(r instanceof InboundPassThroughRouter);
75      }
76  
77      public void testSelectiveConsumerRouter() throws Exception
78      {
79          Router r = lookupInboundRouterFromService("SelectiveConsumerRouter");
80          assertTrue(r instanceof SelectiveConsumer);
81          assertFalse(((SelectiveConsumer) r).isTransformFirst());
82      }
83  
84      protected Router lookupInboundRouterFromService(String serviceName) throws Exception
85      {
86          Service c = muleContext.getRegistry().lookupService(serviceName);
87          assertNotNull(c);
88          List routers = c.getInboundRouter().getRouters();
89          assertEquals(1, routers.size());
90          assertTrue(routers.get(0) instanceof Router);
91          return (Router) routers.get(0);
92      }
93  }