View Javadoc

1   /*
2    * $Id: UsernameTokenProxyTestCase.java 22471 2011-07-20 10:36:17Z claude.mamo $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.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  
11  package org.mule.module.cxf.wssec;
12  
13  import static org.junit.Assert.assertFalse;
14  import static org.junit.Assert.assertNotNull;
15  import static org.junit.Assert.assertTrue;
16  
17  import org.mule.DefaultMuleMessage;
18  import org.mule.api.MuleException;
19  import org.mule.api.MuleMessage;
20  import org.mule.module.client.MuleClient;
21  import org.mule.tck.AbstractServiceAndFlowTestCase;
22  import org.mule.tck.junit4.rule.DynamicPort;
23  
24  import java.io.InputStream;
25  import java.util.Arrays;
26  import java.util.Collection;
27  
28  import org.junit.Rule;
29  import org.junit.Test;
30  import org.junit.runners.Parameterized.Parameters;
31  
32  public class UsernameTokenProxyTestCase extends AbstractServiceAndFlowTestCase 
33  {
34  
35      @Rule
36      public DynamicPort dynamicPort = new DynamicPort("port1");
37      
38      public UsernameTokenProxyTestCase(ConfigVariant variant, String configResources)
39      {
40          super(variant, configResources);
41      }
42  
43      @Parameters
44      public static Collection<Object[]> parameters()
45      {
46          return Arrays.asList(new Object[][]{
47              {ConfigVariant.SERVICE, "org/mule/module/cxf/wssec/cxf-secure-proxy-service.xml, org/mule/module/cxf/wssec/username-token-conf.xml"},
48              {ConfigVariant.FLOW, "org/mule/module/cxf/wssec/cxf-secure-proxy-flow.xml, org/mule/module/cxf/wssec/username-token-conf.xml"}
49          });
50      }      
51  
52      @Override
53      protected void doSetUp() throws Exception
54      {
55          ClientPasswordCallback.setPassword("secret");        
56          super.doSetUp();
57      }
58  
59      @Test
60      public void testProxyEnvelope() throws Exception 
61      {
62          MuleMessage result = sendRequest("http://localhost:" + dynamicPort.getNumber() + "/proxy-envelope");
63          System.out.println(result.getPayloadAsString());
64          assertFalse(result.getPayloadAsString().contains("Fault"));
65          assertTrue(result.getPayloadAsString().contains("joe"));
66      }
67  
68      @Test
69      public void testProxyBody() throws Exception
70      {
71          MuleMessage result = sendRequest("http://localhost:" + dynamicPort.getNumber() + "/proxy-body");
72  
73          System.out.println(result.getPayloadAsString());
74          assertFalse(result.getPayloadAsString().contains("Fault"));
75          assertFalse(result.getPayloadAsString().contains("joe"));
76      }
77  
78      protected MuleMessage sendRequest(String url) throws MuleException
79      {
80          MuleClient client = new MuleClient(muleContext);
81  
82          InputStream stream = getClass().getResourceAsStream(getMessageResource());
83          assertNotNull(stream);
84  
85          MuleMessage result = client.send(url, new DefaultMuleMessage(stream, muleContext));
86          return result;
87      }
88  
89      protected String getMessageResource()
90      {
91          return "/org/mule/module/cxf/wssec/in-message.xml";
92      }
93  
94  }