Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/jellyfish/implementation/BeanConverterTest.java


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  }