1 package org.jellyfish.implementation;
2
3 import javax.naming.NamingException;
4 import javax.naming.directory.BasicAttributes;
5
6 import junit.framework.TestCase;
7 import mock.javax.naming.directory.DirContextMock;
8 import mock.org.apache.avalon.framework.logger.LoggerMock;
9 import mock.org.apache.avalon.framework.service.ServiceManagerMock.ServiceManagerMock;
10
11 import org.jellyfish.ConnectionManager;
12 import org.jellyfish.ConnectionManagerMock;
13 import org.jellyfish.MappingManager;
14 import org.jellyfish.MappingManagerMock;
15 import org.jellyfish.model.Person;
16
17 public class BeanConverterTest extends TestCase {
18 private ConverterDefault converter;
19 private ServiceManagerMock serviceManagerMock;
20 private MappingManagerMock mappingManagerMock;
21 private ConnectionManagerMock connectionManagerMock;
22 private LoggerMock loggerMock;
23
24 public BeanConverterTest(String arg0) {
25 super(arg0);
26 }
27
28 protected void setUp() throws Exception {
29 serviceManagerMock = new ServiceManagerMock();
30 mappingManagerMock = new MappingManagerMock();
31 serviceManagerMock.lookupMap.put(
32 MappingManager.ROLE,
33 mappingManagerMock);
34 connectionManagerMock = new ConnectionManagerMock();
35 serviceManagerMock.lookupMap.put(
36 ConnectionManager.ROLE,
37 connectionManagerMock);
38 converter = new ConverterDefault();
39 converter.service(serviceManagerMock);
40 loggerMock = new LoggerMock();
41 converter.enableLogging(loggerMock);
42 }
43
44 public void testConvert() {
45 String dn = "cn=jed,ou=people,ou=jellyfish,dc=jellyfish,dc=org";
46 connectionManagerMock.getContextReturn = new DirContextMock();
47 connectionManagerMock.getContextReturn.getAttributesReturn =
48 new BasicAttributes();
49
50 converter.convert(Person.class, dn);
51
52 assertTrue(connectionManagerMock.getContextCalled);
53 assertTrue(mappingManagerMock.mapFromAttributesCalled);
54 }
55
56 public void testConvertNullContext() {
57 String dn = "cn=jed,ou=people,ou=jellyfish,dc=jellyfish,dc=org";
58 connectionManagerMock.getContextReturn = null;
59
60 converter.convert(Person.class, dn);
61
62 assertTrue(connectionManagerMock.getContextCalled);
63 assertFalse(mappingManagerMock.mapFromAttributesCalled);
64 }
65
66 public void testConvertNullAttributesReturned() {
67 String dn = "cn=jed,ou=people,ou=jellyfish,dc=jellyfish,dc=org";
68 connectionManagerMock.getContextReturn = new DirContextMock();
69 connectionManagerMock.getContextReturn.getAttributesReturn = null;
70
71 Person person = (Person) converter.convert(Person.class, dn);
72
73 assertTrue(connectionManagerMock.getContextCalled);
74 assertTrue(mappingManagerMock.mapFromAttributesCalled);
75 assertNull(person);
76 }
77
78 public void testConvertNameNotFound() {
79 String dn = "NONEXISTENTNAME";
80 connectionManagerMock.getContextReturn = new DirContextMock();
81 connectionManagerMock.getContextReturn.getAttributesNamingException =
82 new NamingException();
83
84 assertNull(converter.convert(Person.class, dn));
85
86 assertTrue(connectionManagerMock.getContextCalled);
87 assertFalse(mappingManagerMock.mapFromAttributesCalled);
88 assertTrue(loggerMock.fatalErrorCalled);
89 }
90 }
This page was automatically generated by Maven