blob: b89f1873af2980ae229a4896c8f047a5a60b6396 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Oracle.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php.
* You may elect to redistribute this code under either of these licenses.
*
* Contributors:
* Bob Nettleton (Oracle) - Initial Reference Implementation Unit Tests
******************************************************************************/
package org.eclipse.gemini.naming;
import javax.naming.CompositeName;
import javax.naming.Name;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import org.easymock.EasyMockSupport;
import junit.framework.TestCase;
import static org.easymock.EasyMock.*;
public class DirContextWrapperImplTestCase extends TestCase {
public void testCreate() throws Exception {
// setup mocks
EasyMockSupport mockSupport = new EasyMockSupport();
DirContext dirContextMock =
mockSupport.createMock(DirContext.class);
FactoryManager factoryManagerMock =
mockSupport.createMock(FactoryManager.class);
mockSupport.replayAll();
// begin test
new DirContextWrapperImpl(dirContextMock, factoryManagerMock);
mockSupport.verifyAll();
}
/**
* This test verifies that all of the methods on the wrapper for the DirContext interface
* will delegate to the internal DirContext implementation. The test also verifies that the
* parameters passed into the wrapper are passed unchanged to the internal
* implementation.
*
*/
public void testDelegatedMethods() throws Exception {
final Name expectedCompositeName = new CompositeName();
final String[] expectedAttributeParameters = new String[] { "testOne", "testTwo" };
final ModificationItem[] expectedItems = new ModificationItem[0];
final Object expectedBindingValue = new Object();
final SearchControls expectedSearchControls = new SearchControls();
final Object[] expectedObjArray = new Object[0];
// mock setup
EasyMockSupport mockSupport = new EasyMockSupport();
DirContext dirContextMock =
mockSupport.createMock(DirContext.class);
DirContext subContextMock =
mockSupport.createMock(DirContext.class);
FactoryManager factoryManagerMock =
mockSupport.createMock(FactoryManager.class);
Attributes attributesMock =
mockSupport.createMock(Attributes.class);
NamingEnumeration namingEnumMock =
mockSupport.createMock(NamingEnumeration.class);
//setup of expected method calls on internal DirContext
dirContextMock.bind(expectedCompositeName, expectedBindingValue, attributesMock);
dirContextMock.bind("test-bind-one", expectedBindingValue, attributesMock);
expect(dirContextMock.createSubcontext(expectedCompositeName, attributesMock)).andReturn(subContextMock);
expect(dirContextMock.createSubcontext("create-subcontext-one", attributesMock)).andReturn(subContextMock);
expect(dirContextMock.getAttributes(expectedCompositeName)).andReturn(attributesMock);
expect(dirContextMock.getAttributes("get-attributes-one")).andReturn(attributesMock);
expect(dirContextMock.getAttributes(expectedCompositeName, expectedAttributeParameters)).andReturn(attributesMock);
expect(dirContextMock.getAttributes("get-attributes-with-params", expectedAttributeParameters)).andReturn(attributesMock);
expect(dirContextMock.getSchema(expectedCompositeName)).andReturn(subContextMock);
expect(dirContextMock.getSchema("get-schema")).andReturn(subContextMock);
expect(dirContextMock.getSchemaClassDefinition(expectedCompositeName)).andReturn(subContextMock);
expect(dirContextMock.getSchemaClassDefinition("get-schema-class-def")).andReturn(subContextMock);
dirContextMock.modifyAttributes(expectedCompositeName, expectedItems);
dirContextMock.modifyAttributes("modify-attributes", expectedItems);
dirContextMock.modifyAttributes(expectedCompositeName, 10, attributesMock);
dirContextMock.modifyAttributes("modify-attributes-two", 100, attributesMock);
dirContextMock.rebind(expectedCompositeName, expectedBindingValue, attributesMock);
dirContextMock.rebind("rebind-one", expectedBindingValue, attributesMock);
expect(dirContextMock.search(expectedCompositeName, attributesMock)).andReturn(namingEnumMock);
expect(dirContextMock.search("search-one", attributesMock)).andReturn(namingEnumMock);
expect(dirContextMock.search(expectedCompositeName, attributesMock, expectedAttributeParameters)).andReturn(namingEnumMock);
expect(dirContextMock.search(expectedCompositeName, "*", expectedSearchControls)).andReturn(namingEnumMock);
expect(dirContextMock.search("search-with-params", attributesMock, expectedAttributeParameters)).andReturn(namingEnumMock);
expect(dirContextMock.search("search-with-controls", "*", expectedSearchControls)).andReturn(namingEnumMock);
expect(dirContextMock.search(expectedCompositeName, "*", expectedObjArray, expectedSearchControls)).andReturn(namingEnumMock);
expect(dirContextMock.search("search-with-controls-and-filter", "*", expectedObjArray, expectedSearchControls)).andReturn(namingEnumMock);
mockSupport.replayAll();
// begin test
DirContext testDirContext =
new DirContextWrapperImpl(dirContextMock, factoryManagerMock);
testDirContext.bind(expectedCompositeName, expectedBindingValue, attributesMock);
testDirContext.bind("test-bind-one", expectedBindingValue, attributesMock);
assertSame("DirContextWrapperImpl did not return expected subContext",
subContextMock, testDirContext.createSubcontext(expectedCompositeName, attributesMock));
assertSame("DirContextWrapperImpl did not return expected subContext",
subContextMock, testDirContext.createSubcontext("create-subcontext-one", attributesMock));
assertSame("DirContextWrapperImpl did not return expected Attributes",
attributesMock, testDirContext.getAttributes(expectedCompositeName));
assertSame("DirContextWrapperImpl did not return expected Attributes",
attributesMock, testDirContext.getAttributes("get-attributes-one"));
assertSame("DirContextWrapperImpl did not return expected Attributes",
attributesMock, testDirContext.getAttributes(expectedCompositeName, expectedAttributeParameters));
assertSame("DirContextWrapperImpl did not return expected Attributes",
attributesMock, testDirContext.getAttributes("get-attributes-with-params", expectedAttributeParameters));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
subContextMock, testDirContext.getSchema(expectedCompositeName));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
subContextMock, testDirContext.getSchema("get-schema"));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
subContextMock, testDirContext.getSchemaClassDefinition(expectedCompositeName));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
subContextMock, testDirContext.getSchemaClassDefinition("get-schema-class-def"));
testDirContext.modifyAttributes(expectedCompositeName, expectedItems);
testDirContext.modifyAttributes("modify-attributes", expectedItems);
testDirContext.modifyAttributes(expectedCompositeName, 10, attributesMock);
testDirContext.modifyAttributes("modify-attributes-two", 100, attributesMock);
testDirContext.rebind(expectedCompositeName, expectedBindingValue, attributesMock);
testDirContext.rebind("rebind-one", expectedBindingValue, attributesMock);
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search(expectedCompositeName, attributesMock));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search("search-one", attributesMock));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search(expectedCompositeName, attributesMock, expectedAttributeParameters));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search(expectedCompositeName, "*", expectedSearchControls));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search("search-with-params", attributesMock, expectedAttributeParameters));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search("search-with-controls", "*", expectedSearchControls));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search(expectedCompositeName, "*", expectedObjArray, expectedSearchControls));
assertSame("DirContextWrapperImpl did not properly call on internal DirContext impl",
namingEnumMock, testDirContext.search("search-with-controls-and-filter", "*", expectedObjArray, expectedSearchControls));
mockSupport.verifyAll();
}
}