1   /*
2    * $Id: SecurityNamespaceHandlerTestCase.java 10933 2008-02-21 21:20:58Z acooke $
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  
11  package org.mule.security;
12  
13  import org.mule.api.EncryptionStrategy;
14  import org.mule.api.security.SecurityManager;
15  import org.mule.security.PasswordBasedEncryptionStrategy;
16  import org.mule.security.SecretKeyEncryptionStrategy;
17  import org.mule.tck.FunctionalTestCase;
18  
19  import java.util.Iterator;
20  
21  /**
22   * TODO - move to functional tests packge one Ross has finished working there
23   */
24  public class SecurityNamespaceHandlerTestCase extends FunctionalTestCase
25  {
26  
27      protected String getConfigResources()
28      {
29          return "security-namespace-config.xml";
30      }
31  
32      public void testSecurity()
33      {
34          SecurityManager securityManager = muleContext.getSecurityManager();
35          assertNotNull(securityManager.getProvider("dummySecurityProvider"));
36          assertTrue(securityManager.getProvider("dummySecurityProvider") instanceof MockSecurityProvider);
37          verifyEncryptionStrategy(securityManager, "dummyEncryptionStrategy", MockEncryptionStrategy.class);
38          verifyEncryptionStrategy(securityManager, "passwordEncryptionStrategy", PasswordBasedEncryptionStrategy.class);
39          verifyEncryptionStrategy(securityManager, "secretKeyEncryptionStrategy", SecretKeyEncryptionStrategy.class);
40      }
41      
42      private void verifyEncryptionStrategy(SecurityManager securityManager, String name, Class clazz)
43      {
44          Iterator strategies = securityManager.getEncryptionStrategies().iterator();
45          logger.debug("Listing strategies");
46          while (strategies.hasNext())
47          {
48              EncryptionStrategy strategy = (EncryptionStrategy) strategies.next();
49              logger.debug(strategy.getName() + " / " + strategy.toString() + " / " + strategy.getClass());
50          }
51          assertNotNull(name, securityManager.getEncryptionStrategy(name));
52          assertTrue(securityManager.getEncryptionStrategy(name).getClass().equals(clazz));
53      }
54  
55  }