1   package net.sourceforge.heracles.api;
2   
3   /**
4    * Title:            HeraclesTest.java<br>
5    * Copyright:        HFT-SO<br>
6    * Java Version:     JDK 1.5<br>
7    *
8    * @author Philipp Gantert
9    * @version 1.0
10   */
11  
12  import java.util.List;
13  
14  import junit.framework.TestCase;
15  import net.sourceforge.heracles.model.LdapUser;
16  import net.sourceforge.heracles.testUtilities.CreateTestData;
17  
18  /**
19   * @author gantert
20   * 
21   */
22  public class HeraclesTest extends TestCase {
23  
24  	private CreateTestData testData;
25  
26  	private Heracles heracles;
27  
28  	/*
29  	 * (non-Javadoc)
30  	 * 
31  	 * @see junit.framework.TestCase#setUp()
32  	 */
33  	@Override
34  	protected void setUp() throws Exception {
35  		super.setUp();
36  		heracles=Heracles.getHeracles();
37  	}
38  
39  	/*
40  	 * (non-Javadoc)
41  	 * 
42  	 * @see junit.framework.TestCase#tearDown()
43  	 */
44  	@Override
45  	protected void tearDown() throws Exception {
46  		super.tearDown();
47  		if (testData != null)
48  			testData.deleteTestData(testData.getTestData());
49  	}
50  
51  	/**
52  	 * Test method for
53  	 * {@link net.sourceforge.heracles.api.HeraclesImpl#authSimple(java.lang.String, java.lang.String)}.
54  	 * 
55  	 * First we create one test-user. Then we will do a simple authentication
56  	 */
57  	public void testAuthSimple() throws Exception {
58  		testData = new CreateTestData(1, 0, 0, 0);
59  			String username = CreateTestData.GIVENNAME + "0." + CreateTestData.SURNAME + "0" + CreateTestData.REALM;
60  			heracles.authSimple(username, CreateTestData.PASSWORD);
61  		
62  	}
63  
64  	/**
65  	 * Test method for {@link
66  	 * net.sourceforge.heracles.api.HeraclesImpl#authAdvanced(java.lang.String, java.lang.String)}.
67  	 * 
68  	 * First we create one test-user with mail and phone. Then we will do an advanced
69  	 * authentication. After that we will test the received LdapUser object.
70  	 */
71  	public void testAuthAdvanced() throws Exception {
72  		testData = new CreateTestData(1, 1, 1, 0);
73  		testData.createGroups("heraclesGroup1", 1);
74  		testData.createGroups("heraclesGroup2", 1);
75  
76  		String username = CreateTestData.GIVENNAME + "0." + CreateTestData.SURNAME + "0" + CreateTestData.REALM;
77  		LdapUser ldapUser = heracles.authAdvanced(username, CreateTestData.PASSWORD);
78  		assertNotNull("LdapUser is null", ldapUser);
79  
80  		assertEquals(CreateTestData.TELEPHONENUMBER + "0", ldapUser.getTelephoneNumber());
81  		assertEquals(CreateTestData.GIVENNAME + "0." + CreateTestData.SURNAME + "0" + CreateTestData.MAIL, ldapUser.getMail());
82  		assertEquals(CreateTestData.HOMEPAGE, ldapUser.getHomepage());
83  		assertEquals(2, ldapUser.getLdapGroups().size());
84  		assertEquals("heraclesGroup2", ldapUser.getLdapGroups().get(0).getName());
85  	}
86  
87  	/**
88  	 * Test method for {@link
89  	 * net.sourceforge.heracles.api.HeraclesImpl#searchInLdap(java.lang.String, java.lang.String,
90  	 * java.lang.String)}.
91  	 * 
92  	 * First we create 10 test-user, 8 have a mail, 6 have a phone and two are disabled.
93  	 */
94  	public void testSearchInLdap() throws Exception {
95  			testData = new CreateTestData(10, 8, 6, 2);
96  			List<LdapUser> results = heracles.searchInLdap(CreateTestData.DOMAIN, "description", CreateTestData.DESCRIPTION);
97  			assertEquals("found not all testdata", 10, results.size());
98  			 results = heracles.searchInLdap(CreateTestData.DOMAIN, "mail", "*" + CreateTestData.MAIL + "*");
99  			 assertEquals("search about the mail failed", 8, results.size());
100 	}
101 
102 	public void testHeraclesSingleTon(){
103 		Heracles heracles2 = Heracles.getHeracles();
104 		assertEquals(heracles, heracles2);
105 	}
106 		
107 	public HeraclesTest(String name) {
108 		super(name);
109 	}
110 
111 }