diff options
Diffstat (limited to 'das-java/contrib/ldap/das.ldap/src/test/java/org/apache/tuscany/das/ldap/create/test/InitialContextCreatorHelperTest.java')
-rw-r--r-- | das-java/contrib/ldap/das.ldap/src/test/java/org/apache/tuscany/das/ldap/create/test/InitialContextCreatorHelperTest.java | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/das-java/contrib/ldap/das.ldap/src/test/java/org/apache/tuscany/das/ldap/create/test/InitialContextCreatorHelperTest.java b/das-java/contrib/ldap/das.ldap/src/test/java/org/apache/tuscany/das/ldap/create/test/InitialContextCreatorHelperTest.java new file mode 100644 index 0000000000..96c449099d --- /dev/null +++ b/das-java/contrib/ldap/das.ldap/src/test/java/org/apache/tuscany/das/ldap/create/test/InitialContextCreatorHelperTest.java @@ -0,0 +1,189 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.tuscany.das.ldap.create.test; + +import javax.naming.NamingException; +import javax.naming.ldap.LdapContext; + +import org.apache.tuscany.das.ldap.create.InitialContextCreatorHelper; + +import org.apache.tuscany.das.ldap.schema.embedded.setup.test.AbstractTestSetup; +import org.apache.tuscany.das.ldap.util.XSDNamespaceURITokenizer; +import org.eclipse.emf.common.util.URI; + +/* + * Note these tests require a running instance of ApacheDS + */ + +public class InitialContextCreatorHelperTest +extends AbstractTestSetup +{ + protected String xsdNamespace = "http://example.com/users/accounts"; + protected URI xsdNamespaceURI = URI.createURI( xsdNamespace ); + + LdapContext comContext = null; + LdapContext exampleContext = null; + LdapContext usersContext = null; + + public void setUp() throws Exception + { + super.setUp(); + } + + public void tearDown() throws Exception + { + super.tearDown(); + } + + public void testCreateSystemSubContext() throws NamingException + { + String testContextRDN = "cn=newContext"; + + Object testContext = null; + + try { + testContext = dasPartitionContext.lookup( testContextRDN ); + } + catch (Exception e) + { + //good + } + + assertNull(testContext); + + InitialContextCreatorHelper.createSubContext( + dasPartitionContext, + testContextRDN, + null); + + testContext = dasPartitionContext.lookup( testContextRDN ); + + assertNotNull(testContext); + dasPartitionContext.destroySubcontext( testContextRDN ); + } + + public void testCreateExistingSystemSubContext() throws NamingException + { + String testContextRDN = "cn=newContext"; + Object testContext = null; + + try { + testContext = dasPartitionContext.lookup( testContextRDN ); + } + catch (Exception e) + { + //good + } + + assertNull(testContext); + + InitialContextCreatorHelper.createSubContext( + dasPartitionContext, + testContextRDN, + null); + + //Run the same code again. + InitialContextCreatorHelper.createSubContext( + dasPartitionContext, + testContextRDN, + null); + + testContext = dasPartitionContext.lookup( testContextRDN ); + + assertNotNull(testContext); + dasPartitionContext.destroySubcontext( testContextRDN ); + } + + + public void testCreateAuthorityContext() + throws NamingException + { + try + { + comContext = + ( LdapContext ) + dasPartitionContext.lookup("cn=com"); + } + catch ( NamingException e ) + { + //Good - the subcontext does not exist + } + assertTrue(comContext==null); + + String[] authorityTokens = + XSDNamespaceURITokenizer.createAuthorityTokens(xsdNamespaceURI); + + InitialContextCreatorHelper.createAuthorityContext( + dasPartitionContext, + authorityTokens ); + + comContext = + ( LdapContext ) dasPartitionContext.lookup("cn=com"); + + assertNotNull(comContext); + + exampleContext = + ( LdapContext ) comContext.lookup("cn=example"); + + assertNotNull(exampleContext); + + comContext.destroySubcontext( "cn=example" ); + dasPartitionContext.destroySubcontext( "cn=com" ); + } + + public void testCreatePathContext() throws NamingException + { + String[] authorityTokens = + XSDNamespaceURITokenizer. + createAuthorityTokens(xsdNamespaceURI); + + exampleContext = + InitialContextCreatorHelper. + createAuthorityContext( + dasPartitionContext, + authorityTokens ); + + String[] pathTokens = + XSDNamespaceURITokenizer. + createPathTokens(xsdNamespaceURI); + + InitialContextCreatorHelper. + createPathContext( + exampleContext, + pathTokens ); + + comContext = + ( LdapContext ) + dasPartitionContext. + lookup("cn=com"); + + exampleContext = + ( LdapContext ) + comContext. + lookup("cn=example"); + + usersContext = ( LdapContext ) exampleContext.lookup("cn=users"); + + usersContext.destroySubcontext( "cn=accounts" ); + exampleContext.destroySubcontext( "cn=users" ); + comContext.destroySubcontext( "cn=example" ); + dasPartitionContext.destroySubcontext( "cn=com" ); + } +}
\ No newline at end of file |