KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > test > util > IpanemaTestCase


1 /*
2  * Created on May 7, 2005
3  *
4  */

5 package com.nightlabs.ipanema.test.util;
6
7 import java.io.IOException JavaDoc;
8 import java.io.InputStream JavaDoc;
9 import java.util.Hashtable JavaDoc;
10 import java.util.Iterator JavaDoc;
11 import java.util.Map JavaDoc;
12 import java.util.Properties JavaDoc;
13
14 import javax.naming.InitialContext JavaDoc;
15 import javax.naming.NamingException JavaDoc;
16 import javax.security.auth.login.LoginException JavaDoc;
17
18 import com.nightlabs.j2ee.InitialContextProvider;
19
20 import junit.framework.TestCase;
21
22 /**
23  * @author Niklas Schiffler <nick@nightlabs.de>
24  *
25  */

26 public class IpanemaTestCase extends TestCase implements InitialContextProvider
27 {
28     protected IpanemaLoginContext loginContext;
29     protected Properties JavaDoc initialContextProperties;
30     protected InitialContext JavaDoc initialContext;
31     
32     public IpanemaTestCase(String JavaDoc name)
33     {
34         super(name);
35         loadProperties();
36         IpanemaSecurityConfiguration.declareConfiguration();
37         init();
38     }
39
40     private void init()
41     {
42         try
43         {
44             loginContext = new IpanemaLoginContext("ipanema", new LoginCallbackHandler(this));
45             loginContext.setCredentials(
46                     System.getProperty("com.nightlabs.ipanema.test.userid"),
47                     System.getProperty("com.nightlabs.ipanema.test.organisationid"),
48                     System.getProperty("com.nightlabs.ipanema.test.password")
49             );
50         }
51         catch (LoginException JavaDoc e)
52         {
53             fail("Error creating login context");
54         }
55     }
56
57     public Hashtable JavaDoc getInitialContextProperties()
58         throws LoginException JavaDoc
59     {
60     if (initialContextProperties == null)
61     {
62         initialContextProperties = new Properties JavaDoc();
63             initialContextProperties.put(InitialContext.INITIAL_CONTEXT_FACTORY, System.getProperty("com.nightlabs.ipanema.test.initialcontextfactory"));
64         initialContextProperties.put(InitialContext.PROVIDER_URL, System.getProperty("com.nightlabs.ipanema.test.serverurl"));
65         initialContextProperties.put(InitialContext.SECURITY_PRINCIPAL, loginContext.getUsername());
66         initialContextProperties.put(InitialContext.SECURITY_CREDENTIALS, loginContext.getPassword());
67         initialContextProperties.put(InitialContext.SECURITY_PROTOCOL, "ipanema");
68         }
69         return initialContextProperties;
70     }
71
72
73     
74     public InitialContext JavaDoc getInitialContext()
75         throws LoginException JavaDoc, NamingException JavaDoc
76     {
77         if (initialContext == null)
78             initialContext = new InitialContext JavaDoc(getInitialContextProperties());
79         return initialContext;
80     }
81
82     public IpanemaLoginContext getLoginContext() {
83         return loginContext;
84     }
85
86     protected void loadProperties()
87     {
88         // if properties defined by system use them
89
if((System.getProperty("com.nightlabs.ipanema.test.initialcontextfactory") != null) &&
90          (System.getProperty("com.nightlabs.ipanema.test.serverurl") != null) &&
91          (System.getProperty("com.nightlabs.ipanema.test.userid") != null) &&
92          (System.getProperty("com.nightlabs.ipanema.test.organisationid") != null) &&
93          (System.getProperty("com.nightlabs.ipanema.test.password") != null))
94         return;
95
96     Properties JavaDoc props = new Properties JavaDoc();
97     InputStream JavaDoc is = null;
98     String JavaDoc conf = System.getProperty("com.nightlabs.ipanema.test.config");
99     if(conf == null)
100         fail("com.nightlabs.ipanema.test.config not defined");
101     is = IpanemaTestCase.class.getResourceAsStream(conf);
102     if(is == null)
103         fail("could not open properties: " + conf);
104     try
105         {
106         props.load(is);
107         for( Iterator JavaDoc it = props.entrySet().iterator(); it.hasNext(); )
108         {
109             Map.Entry JavaDoc entry = (Map.Entry JavaDoc) it.next();
110             System.setProperty((String JavaDoc)entry.getKey(),(String JavaDoc)entry.getValue());
111         }
112         }
113     catch (IOException JavaDoc e)
114         {
115         e.printStackTrace();
116         }
117     }
118 }
119
Popular Tags