1   package test.tuigwaa;
2   
3   import java.io.File;
4   import java.util.Enumeration;
5   import java.util.Hashtable;
6   import java.util.Iterator;
7   import java.util.List;
8   
9   import javax.naming.NamingException;
10  
11  import junit.extensions.TestSetup;
12  import junit.framework.Test;
13  import junit.framework.TestCase;
14  import junit.framework.TestSuite;
15  
16  import org.apache.ldap.server.configuration.MutableServerStartupConfiguration;
17  import org.seasar.framework.container.S2Container;
18  import org.seasar.framework.container.factory.S2ContainerFactory;
19  import org.seasar.tuigwaa.security.DirectoryService;
20  import org.seasar.tuigwaa.security.auth.TgwUser;
21  
22  import com.isenshi.util.extlib.ApacheDSUtil;
23  
24  /***
25   * @author someda
26   */
27  public class DirectoryServiceTest extends TestCase {
28  
29  	private static DirectoryService directoryService;
30  	private static TgwUser testuser;
31  	private static MutableServerStartupConfiguration config;
32  	private static Hashtable environment;
33  		
34  	public static Test suite() throws Exception{
35  		TestSuite suite = new TestSuite(DirectoryServiceTest.class);
36  		TestSetup setup = new TestSetup(suite){
37  			
38  			public void setUp() throws Exception{
39  				S2Container container = S2ContainerFactory.create("app.dicon");
40  				directoryService = (DirectoryService) container.getComponent(DirectoryService.class);
41  				config = (MutableServerStartupConfiguration) container.getComponent("ldapstartup");
42  				environment = (Hashtable) container.getComponent("ldapenv");
43  				testuser = new TgwUser();
44  				testuser.setName("test");
45  				testuser.setPassword("test");
46  				testuser.setDn("uid=test,ou=users,dc=seasar,dc=org");				
47  			}
48  			
49  			public void tearDown() throws Exception{
50  				try{
51  					ApacheDSUtil.shutdown(environment);
52  				}catch(NamingException ne){
53  					ne.printStackTrace();
54  				}
55  			}			
56  		};
57  		return setup;		
58  	}
59  		
60  	public void setUp() {
61  	}
62  	
63  	public void testShowConfiguration(){
64  		
65  		File workingdir = config.getWorkingDirectory();
66  		int port = config.getLdapPort();
67  		
68  		System.out.println("working directory : " + workingdir.toString());
69  		System.out.println("port : " + port);				
70  				
71  		Enumeration e = environment.keys();
72  		System.out.println("====== JNDI Environment =====");
73  		while(e.hasMoreElements()){
74  			String key = (String)e.nextElement();
75  			System.out.println(key + " : " + environment.get(key));			
76  		}
77  	}
78  	
79  	public void testAddUser(){			
80  		directoryService.addUser(testuser);		
81  	}
82  	
83  	public void testGetUsers(){
84  		List list = directoryService.getUsers();
85  		for(Iterator i = list.iterator();i.hasNext();){
86  			TgwUser user = (TgwUser) i.next();		
87  			System.out.println(user.getDn());
88  		}
89  	}
90  	
91  	public void testDeleteUser(){
92  		directoryService.deleteUser(testuser.getDn());
93  	}
94  	
95  	public void tearDown(){
96  
97  	}
98  		
99  }