1 package org.jellyfish.provider; 2 3 import java.io.IOException; 4 import java.util.Collection; 5 import java.util.HashMap; 6 import java.util.HashSet; 7 import java.util.Iterator; 8 import java.util.Map; 9 import java.util.Set; 10 11 import javax.naming.NamingException; 12 import javax.naming.directory.Attributes; 13 import javax.naming.directory.BasicAttributes; 14 import javax.naming.directory.DirContext; 15 16 import junit.framework.TestCase; 17 18 import org.jellyfish.ManagerFactoryBase; 19 import org.jellyfish.ManagerFactoryMock; 20 21 public class FileSystemDirectoryContextDefaultTest extends TestCase { 22 23 private ManagerFactoryMock managerFactoryMock; 24 private FileSystemDirectoryContext fileSystemDirectoryContext; 25 private String name; 26 27 public FileSystemDirectoryContextDefaultTest(String arg0) { 28 super(arg0); 29 } 30 31 protected void setUp() throws Exception { 32 managerFactoryMock = new ManagerFactoryMock(); 33 ManagerFactoryBase.setInstance(managerFactoryMock); 34 fileSystemDirectoryContext = createFileSystemDirectoryContextDefault(); 35 fileSystemDirectoryContext.setProviderUrl("file:///tmp/jndi"); 36 name = "cn=user1,ou=people,dc=jellyfish,dc=org"; 37 managerFactoryMock.createEntryFileHandlerReturn.loadPropertiesReturn = createProperties(); 38 } 39 40 private FileSystemDirectoryContext createFileSystemDirectoryContextDefault() { 41 return new FileSystemDirectoryContextDefault() { 42 protected void createNewFile(String name) throws IOException { 43 } 44 }; 45 } 46 47 private Map createProperties() { 48 Map properties = new HashMap(); 49 properties.put("cn", createOneElementSet("bob")); 50 properties.put("sn", createOneElementSet("smith")); 51 return properties; 52 } 53 54 private Set createOneElementSet(Object element) { 55 Set set = new HashSet(); 56 set.add(element); 57 return set; 58 } 59 60 private Attributes createAttributes() { 61 Attributes attributes = new BasicAttributes(); 62 attributes.put("cn", "bob"); 63 attributes.put("sn", "smith"); 64 return attributes; 65 } 66 67 public void testGetAttributes() throws NamingException { 68 Attributes attributes = fileSystemDirectoryContext.getAttributes(name); 69 assertEquals( 70 fileSystemDirectoryContext.getProviderUrl() + "/dc=org/dc=jellyfish/ou=people/cn=user1", 71 managerFactoryMock.createEntryFileHandlerReturn.loadPropertiesFile); 72 for (Iterator iterator = 73 managerFactoryMock 74 .createEntryFileHandlerReturn 75 .loadPropertiesReturn 76 .keySet() 77 .iterator(); 78 iterator.hasNext(); 79 ) { 80 String key = (String)iterator.next(); 81 assertTrue( 82 ( 83 ( 84 Collection)managerFactoryMock 85 .createEntryFileHandlerReturn 86 .loadPropertiesReturn 87 .get( 88 key)).contains( 89 attributes.get(key).get())); 90 } 91 } 92 93 public void testModifyAttributes() throws NamingException { 94 fileSystemDirectoryContext.modifyAttributes( 95 name, 96 DirContext.REPLACE_ATTRIBUTE, 97 createAttributes()); 98 assertTrue(managerFactoryMock.createEntryFileHandlerReturn.modifyPropertiesCalled); 99 assertEquals( 100 fileSystemDirectoryContext.getProviderUrl() + "/dc=org/dc=jellyfish/ou=people/cn=user1", 101 managerFactoryMock.createEntryFileHandlerReturn.modifyPropertiesFile); 102 assertTrue( 103 ( 104 ( 105 Collection)managerFactoryMock 106 .createEntryFileHandlerReturn 107 .modifyPropertiesProperties 108 .get( 109 "cn")).contains( 110 "bob")); 111 assertTrue( 112 ( 113 ( 114 Collection)managerFactoryMock 115 .createEntryFileHandlerReturn 116 .modifyPropertiesProperties 117 .get( 118 "sn")).contains( 119 "smith")); 120 } 121 122 public void testCreateSubcontext() throws NamingException { 123 fileSystemDirectoryContext.createSubcontext(name, createAttributes()); 124 assertTrue(managerFactoryMock.createEntryFileHandlerReturn.modifyPropertiesCalled); 125 assertEquals( 126 fileSystemDirectoryContext.getProviderUrl() + "/dc=org/dc=jellyfish/ou=people/cn=user1", 127 managerFactoryMock.createEntryFileHandlerReturn.modifyPropertiesFile); 128 assertTrue( 129 ( 130 ( 131 Collection)managerFactoryMock 132 .createEntryFileHandlerReturn 133 .modifyPropertiesProperties 134 .get( 135 "cn")).contains( 136 "bob")); 137 assertTrue( 138 ( 139 ( 140 Collection)managerFactoryMock 141 .createEntryFileHandlerReturn 142 .modifyPropertiesProperties 143 .get( 144 "sn")).contains( 145 "smith")); 146 } 147 148 public void testDestroySubContext() throws NamingException { 149 fileSystemDirectoryContext.destroySubcontext(name); 150 assertTrue(managerFactoryMock.createEntryFileHandlerReturn.deletePropertiesCalled); 151 assertEquals( 152 fileSystemDirectoryContext.getProviderUrl() + "/dc=org/dc=jellyfish/ou=people/cn=user1", 153 managerFactoryMock.createEntryFileHandlerReturn.deletePropertiesFile); 154 } 155 }

This page was automatically generated by Maven