1 /** 2 * Title: LdapQueryImplTest.java<br> 3 * Description: TODO<br> 4 * Copyright: HFT-SO<br> 5 * Erstellt am: 01.05.2007<br> 6 * Java Version: JDK 1.5<br> 7 * 8 * @author Philipp Gantert 9 * @version 1.0 10 */ 11 12 package net.sourceforge.heracles.dao; 13 14 import java.text.DateFormat; 15 import java.util.ArrayList; 16 import java.util.Calendar; 17 import java.util.Date; 18 import java.util.GregorianCalendar; 19 import java.util.List; 20 21 import junit.framework.TestCase; 22 import junitx.util.PrivateAccessor; 23 import net.sourceforge.heracles.dao.impl.LdapQueryImpl; 24 import net.sourceforge.heracles.model.LdapUser; 25 26 public class LdapQueryImplTest extends TestCase { 27 28 /** 29 * This Test tests the private method convertDate. And the method changeEpoch. The goal is the 30 * show if the data convertion from long the a Date object successful. 31 * 32 * @throws Throwable 33 */ 34 public void testConvertDate() throws Throwable { 35 LdapQuery ldapQuery = new LdapQueryImpl(); 36 try { 37 List<Long> longs = new ArrayList(); 38 longs.add(new Long("128218057058946001")); 39 longs.add(new Long("128218422932932903")); 40 longs.add(new Long("128218834832483248")); 41 longs.add(new Long("128218472929292282")); 42 43 for (Long l : longs) { 44 Date date = (Date) PrivateAccessor.invoke(ldapQuery, "convertDate", new Class[] { long.class }, new Object[] { l.longValue() }); 45 assertEquals(displayWin32Date(new String(l.toString())), (DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(date))); 46 } 47 48 } catch (IllegalStateException ex) { 49 ex.printStackTrace(); 50 } 51 } 52 53 /** 54 * This Test tests the private method defineUserAccountControl. LdapUser Account should be 55 * disabled and locked. The password should be expired. 56 * 57 * @throws Throwable 58 */ 59 public void testDefineUserAccountControl() throws Throwable { 60 LdapQuery ldapQuery = new LdapQueryImpl(); 61 LdapUser ldapUser = new LdapUser(); 62 int normalAccount= 512; 63 int accountDisabled=2; 64 int accountLocked=16; 65 int passwordExpired=8388608; 66 int userAccountControlFlag=normalAccount+accountDisabled+accountLocked+passwordExpired; 67 68 PrivateAccessor.invoke(ldapQuery, "defineUserAccountControl", new Class[] { LdapUser.class, int.class }, new Object[] { ldapUser, userAccountControlFlag }); 69 70 assertEquals("Account is not disabled",true, ldapUser.isAccountDisable()); 71 assertEquals("Account is not locked",true, ldapUser.isAccountLockout()); 72 assertEquals("Password is expired", true,ldapUser.isPasswordExpired()); 73 } 74 75 /** 76 * This is a helper method for the convertDate Test. 77 * 78 * @param win32FileTime 79 * @return 80 */ 81 private String displayWin32Date(String win32FileTime) { 82 GregorianCalendar win32Epoch = new GregorianCalendar(1601, Calendar.JANUARY, 1); 83 Long lWin32Epoch = win32Epoch.getTimeInMillis(); 84 Long lWin32FileTime = new Long(win32FileTime); 85 return (DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format((lWin32FileTime / 10000) + lWin32Epoch)); 86 } 87 88 }