1   /*
2    * $Id: KBEStrategyUsingEncryptionTransformerTestCase.java 11389 2008-03-17 14:29:31Z marie.rizzo $
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.module.pgp;
12  
13  import java.net.URL;
14  
15  import org.mule.DefaultMuleEvent;
16  import org.mule.RequestContext;
17  import org.mule.tck.AbstractMuleTestCase;
18  import org.mule.tck.testmodels.fruit.Orange;
19  import org.mule.transformer.encryption.EncryptionTransformer;
20  import org.mule.transformer.simple.ByteArrayToObject;
21  
22  public class KBEStrategyUsingEncryptionTransformerTestCase extends AbstractMuleTestCase
23  {
24  	private KeyBasedEncryptionStrategy kbStrategy;
25      
26      protected void doSetUp() throws Exception
27      {
28          PGPKeyRingImpl keyM = new PGPKeyRingImpl();
29          URL url;
30  
31          url = Thread.currentThread().getContextClassLoader().getResource("./serverPublic.gpg");
32          keyM.setPublicKeyRingFileName(url.getFile());
33  
34          url = Thread.currentThread().getContextClassLoader().getResource("./serverPrivate.gpg");
35          keyM.setSecretKeyRingFileName(url.getFile());
36  
37          keyM.setSecretAliasId("0x6168F39C");
38          keyM.setSecretPassphrase("TestingPassphrase");
39          keyM.initialise();
40  
41          kbStrategy = new KeyBasedEncryptionStrategy();
42          kbStrategy.setKeyManager(keyM);
43          kbStrategy.setCredentialsAccessor(new FakeCredentialAccessor());
44          kbStrategy.initialise();
45      }
46  
47      protected void doTearDown() throws Exception
48      {
49          kbStrategy = null;
50      }
51      
52      public void testEncrypt() throws Exception
53      {
54          String msg = "Test Message";
55          
56          DefaultMuleEvent event = (DefaultMuleEvent)getTestEvent(msg, getTestService("orange", Orange.class));
57          RequestContext.setEvent(event);
58          
59          EncryptionTransformer etrans = new EncryptionTransformer();
60          etrans.setStrategy(kbStrategy);
61          Object result = etrans.doTransform(msg.getBytes(), "UTF-8");
62          
63          assertNotNull(result);
64          String encrypted = (String) new ByteArrayToObject().doTransform(result,"UTF-8");
65          assertTrue(encrypted.startsWith("-----BEGIN PGP MESSAGE-----"));
66      }
67  }