summaryrefslogtreecommitdiffstats
path: root/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype
diff options
context:
space:
mode:
Diffstat (limited to 'das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype')
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/Prototype.java74
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/PrototypeUtilities.java243
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/CommonSetupTest.java264
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataGraphSetupTest.java138
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataObjectSetupTest.java49
-rw-r--r--das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/LdapDASSetupTest.java218
6 files changed, 986 insertions, 0 deletions
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/Prototype.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/Prototype.java
new file mode 100644
index 0000000000..17f011e971
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/Prototype.java
@@ -0,0 +1,74 @@
+package org.apache.tuscany.das.ldap.prototype.setup;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+
+public interface Prototype {
+ EClass userEClass =
+ PrototypeUtilities.createUserEClass();
+ EClass authorizationEClass =
+ PrototypeUtilities.createAuthorizationEClass();
+ EClass configurationEClass =
+ PrototypeUtilities.createConfigurationEClass();
+
+ EAttribute userNameEAttribute =
+ PrototypeUtilities.createUserNameEAttribute();
+ EAttribute userAliasesEAttribute =
+ PrototypeUtilities.createUserAliasesEAttribute();
+
+ EAttribute userPasswordEAttribute =
+ PrototypeUtilities.createUserPasswordEAttribute();
+ EAttribute userIDEAttribute =
+ PrototypeUtilities.createUserIDEAttribute();
+ EAttribute userAgeEAttribute =
+ PrototypeUtilities.createUserAgeEAttribute();
+ EAttribute userHeightEAttribute =
+ PrototypeUtilities.createUserHeightEAttribute();
+ EAttribute userIsMaleEAttribute =
+ PrototypeUtilities.createUserIsMaleEAttribute();
+ EReference userAuthorizationEReference =
+ PrototypeUtilities.createUserAuthorizationEReference();
+
+ EReference userConfigurationEReference =
+ PrototypeUtilities.createUserConfigurationEReference();
+
+
+
+
+ EAttribute authorizationFileEAttribute =
+ PrototypeUtilities.createFileEAttribute();
+ EAttribute authorizationReadEAttribute =
+ PrototypeUtilities.createReadAuthorizationEAttribute();
+ EAttribute authorizationWriteEAttribute=
+ PrototypeUtilities.createWriteAuthorizationEAttribute();
+ EAttribute authorizationExecuteEAttribute =
+ PrototypeUtilities.createExecuteAuthorizationEAttribute();
+ EAttribute authorizationIDEAttribute =
+ PrototypeUtilities.createAuthorizationIDEAttribute();
+
+ EAttribute configurationIDEAttribute =
+ PrototypeUtilities.createConfigurationIDEAttribute();
+
+ EReference configurationAuthorizationEReference =
+ PrototypeUtilities.createConfigurationAuthorizationEReference();
+
+ EReference configurationAuthorizationsEReference =
+ PrototypeUtilities.createConfigurationAuthorizationsEReference();
+
+
+ EPackage userEPackage =
+ PrototypeUtilities.createUserEPackage();
+
+ EFactory userEFactory =
+ userEPackage.getEFactoryInstance();
+
+ EcoreFactory ecoreFactory =
+ EcoreFactory.eINSTANCE;
+ EcorePackage ecorePackage =
+ EcorePackage.eINSTANCE;
+}
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/PrototypeUtilities.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/PrototypeUtilities.java
new file mode 100644
index 0000000000..11af604dfa
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/PrototypeUtilities.java
@@ -0,0 +1,243 @@
+package org.apache.tuscany.das.ldap.prototype.setup;
+
+import org.apache.tuscany.das.ldap.testing.constants.DASTestingConstants;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.ETypedElement;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.sdo.impl.DynamicEDataObjectImpl;
+
+public class PrototypeUtilities
+implements DASTestingConstants {
+
+ /*
+ * The User EClass is intended to be the root of the DataGraph
+ * It should have a multiplicity many containment reference of type
+ * Authorization and a containment reference of type Configuration
+ * The Configuration should have a single non-containment reference
+ * of type Authorization.
+ */
+
+ public static EClass createUserEClass()
+ {
+ EClass userEClass =
+ EcoreFactory.eINSTANCE.createEClass();
+
+ userEClass.setName("User");
+
+ return userEClass;
+ }
+
+ public static EAttribute createUserIDEAttribute()
+ {
+ EAttribute id =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ id.setName( "id" );
+ id.setEType( EcorePackage.eINSTANCE.getEString() );
+ id.setID(true);
+ return id;
+ }
+
+ public static EAttribute createUserNameEAttribute()
+ {
+ EAttribute userName =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ userName.setName( "userName" );
+ userName.setEType( EcorePackage.eINSTANCE.getEString() );
+ return userName;
+ }
+
+ public static EAttribute createUserAliasesEAttribute()
+ {
+ EAttribute userAliases =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ userAliases.setName( "userAliases" );
+ userAliases.setLowerBound( 0 );
+ userAliases.setUpperBound( -1 );
+ userAliases.setEType( EcorePackage.eINSTANCE.getEString() );
+ return userAliases;
+ }
+
+ public static EAttribute createUserPasswordEAttribute()
+ {
+ EAttribute userPassword =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ userPassword.setName( "userPassword" );
+ userPassword.setEType( EcorePackage.eINSTANCE.getEString() );
+ return userPassword;
+ }
+
+ public static EAttribute createUserAgeEAttribute()
+ {
+ EAttribute userAge =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ userAge.setName( "userAge" );
+ userAge.setEType( EcorePackage.eINSTANCE.getEInt() );
+ return userAge;
+ }
+
+ public static EAttribute createUserHeightEAttribute()
+ {
+ EAttribute userHeight =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ userHeight.setName( "userHeight" );
+ userHeight.setEType( EcorePackage.eINSTANCE.getEDouble() );
+ return userHeight;
+ }
+
+ public static EAttribute createUserIsMaleEAttribute()
+ {
+ EAttribute isMale =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ isMale.setName( "isMale" );
+ isMale.setEType( EcorePackage.eINSTANCE.getEBoolean() );
+ return isMale;
+ }
+
+ public static EReference createUserAuthorizationEReference()
+ {
+ EReference userAuthorizationEReference =
+ EcoreFactory.eINSTANCE.createEReference();
+ userAuthorizationEReference.setLowerBound(0);
+ userAuthorizationEReference.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+ userAuthorizationEReference.setContainment(true);
+ userAuthorizationEReference.setName("authorizationList");
+
+ return userAuthorizationEReference;
+ }
+
+ public static EReference createUserConfigurationEReference()
+ {
+ EReference userConfigurationEReference =
+ EcoreFactory.eINSTANCE.createEReference();
+ userConfigurationEReference.setLowerBound(0);
+ userConfigurationEReference.setUpperBound(1);
+ userConfigurationEReference.setContainment(true);
+ userConfigurationEReference.setName("configuration");
+
+ return userConfigurationEReference;
+ }
+
+
+ public static EPackage createUserEPackage()
+ {
+ EPackage userEPackage =
+ EcoreFactory.eINSTANCE.createEPackage();
+ userEPackage.setName( "userPackage" );
+ userEPackage.setNsPrefix( "user" );
+ userEPackage.setNsURI( xsdNamespace );
+
+ userEPackage.setEFactoryInstance(
+ new DynamicEDataObjectImpl.FactoryImpl());
+
+ return userEPackage;
+ }
+
+ public static EClass createAuthorizationEClass()
+ {
+ EClass authorizationEClass =
+ EcoreFactory.eINSTANCE.createEClass();
+
+ authorizationEClass.setName("Authorization");
+
+ return authorizationEClass;
+ }
+
+ public static EAttribute createAuthorizationIDEAttribute()
+ {
+ EAttribute id =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ id.setName( "id" );
+ id.setEType( EcorePackage.eINSTANCE.getEString() );
+ id.setID(true);
+ return id;
+ }
+
+ public static EAttribute createFileEAttribute()
+ {
+ EAttribute fileNameEAttribute =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ fileNameEAttribute.setName( "fileName" );
+ fileNameEAttribute.setEType( EcorePackage.eINSTANCE.getEString() );
+ return fileNameEAttribute;
+
+ }
+
+ public static EAttribute createWriteAuthorizationEAttribute()
+ {
+ EAttribute writeAuthorizationEAttribute =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ writeAuthorizationEAttribute.setName( "writeAuthorization" );
+ writeAuthorizationEAttribute.setEType( EcorePackage.eINSTANCE.getEBoolean() );
+ return writeAuthorizationEAttribute;
+ }
+
+ public static EAttribute createReadAuthorizationEAttribute()
+ {
+ EAttribute readAuthorizationEAttribute =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ readAuthorizationEAttribute.setName( "readAuthorization" );
+ readAuthorizationEAttribute.setEType( EcorePackage.eINSTANCE.getEBoolean() );
+ return readAuthorizationEAttribute;
+ }
+
+ public static EAttribute createExecuteAuthorizationEAttribute()
+ {
+ EAttribute readExecuteEAttribute =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ readExecuteEAttribute.setName( "executeAuthorization" );
+ readExecuteEAttribute.setEType( EcorePackage.eINSTANCE.getEBoolean() );
+ return readExecuteEAttribute;
+ }
+
+
+ public static EClass createConfigurationEClass()
+ {
+ EClass configurationEClass =
+ EcoreFactory.eINSTANCE.createEClass();
+
+ configurationEClass.setName("Configuration");
+
+ return configurationEClass;
+ }
+
+ public static EAttribute createConfigurationIDEAttribute()
+ {
+ EAttribute id =
+ EcoreFactory.eINSTANCE.createEAttribute();
+ id.setName( "id" );
+ id.setEType( EcorePackage.eINSTANCE.getEString() );
+ id.setID(true);
+ return id;
+ }
+
+ public static EReference createConfigurationAuthorizationEReference()
+ {
+ EReference authorizationEReference =
+ EcoreFactory.eINSTANCE.createEReference();
+ authorizationEReference.setLowerBound(0);
+ authorizationEReference.setUpperBound(1);
+ authorizationEReference.setContainment(false);
+ //authorizationEReference.setEType(createAuthorizationEClass()); Do this in the testing code.
+ authorizationEReference.setName("authorization");
+
+ return authorizationEReference;
+ }
+
+ public static EReference createConfigurationAuthorizationsEReference()
+ {
+ EReference authorizationsEReference =
+ EcoreFactory.eINSTANCE.createEReference();
+ authorizationsEReference.setLowerBound(0);
+ authorizationsEReference.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+ authorizationsEReference.setContainment(false);
+ //authorizationEReference.setEType(createAuthorizationEClass()); Do this in the testing code.
+ authorizationsEReference.setName("authorizations");
+
+ return authorizationsEReference;
+ }
+
+}
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/CommonSetupTest.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/CommonSetupTest.java
new file mode 100644
index 0000000000..9b7673efe6
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/CommonSetupTest.java
@@ -0,0 +1,264 @@
+/*
+ * 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.prototype.setup.test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.NamingException;
+import javax.naming.ldap.LdapContext;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tuscany.das.ldap.prototype.setup.Prototype;
+import org.apache.tuscany.das.ldap.schema.embedded.setup.test.EcoreSchemaAndDASContextsSetup;
+import org.apache.tuscany.das.ldap.schema.emf.create.EObjectClassCreator;
+import org.apache.tuscany.das.ldap.schema.emf.destroy.EObjectClassDestroyer;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.sdo.EDataObject;
+
+public class CommonSetupTest
+extends EcoreSchemaAndDASContextsSetup
+implements Prototype
+{
+ protected EObjectClassCreator eObjectClassCreator = null;
+
+ protected EDataObject userDataObject = null;
+ protected EDataObject authorizationDataObject0 = null;
+ protected EDataObject authorizationDataObject1 = null;
+ protected EDataObject configurationDataObject = null;
+
+ protected static List<EClass>
+ processedEClassifiers = null;
+
+ protected String userDataObjectRDN =
+ "example-com-users-accounts-User-id=1";
+ protected String authorizationDataObject1RDN =
+ "example-com-users-accounts-Authorization-id=2,cn=authorizationList,example-com-users-accounts-User-id=1";
+ protected String authorizationDataObject2RDN =
+ "example-com-users-accounts-Authorization-id=3,cn=authorizationList,example-com-users-accounts-User-id=1";
+ protected String configurationDataObjectRDN =
+ "example-com-users-accounts-Configuration-id=5,cn=configuration,example-com-users-accounts-User-id=1";
+
+ protected String configurationContainingFeatureRDN =
+ "cn=configuration";
+ protected String authorizationListContainingFeatureRDN=
+ "cn=authorizationList";
+
+ protected LdapContext authorizationContainerContext = null;
+ protected LdapContext configurationContainerContext = null;
+ protected LdapContext userContainerContext = null;
+
+ protected Map<EDataObject, String> dataObjectToRelativeDNCache = null;
+
+ public void tearDown() throws NamingException, Exception
+ {
+ rootContext.destroySubcontext(userDataObjectRDN);
+
+ EObjectClassDestroyer.
+ destroy(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ userEClass,
+ TUSCANY_OID_PREFIX_VALUE );
+
+ super.tearDown();
+ }
+
+ public void setUp() throws Exception
+ {
+ FileUtils.deleteDirectory(new File("server-work"));
+
+ dataObjectToRelativeDNCache =
+ new Hashtable<EDataObject, String>();
+
+ super.setUp();
+
+ userAuthorizationEReference.
+ setEType(authorizationEClass);
+
+ userConfigurationEReference.
+ setEType(configurationEClass);
+
+ configurationAuthorizationEReference.
+ setEType(authorizationEClass);
+
+ configurationAuthorizationsEReference.
+ setEType(authorizationEClass);
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userNameEAttribute );
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userAliasesEAttribute );
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userPasswordEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userAgeEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userHeightEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userIsMaleEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userIDEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userAuthorizationEReference );
+ userEClass.
+ getEStructuralFeatures().
+ add( userConfigurationEReference );
+
+ userEPackage.getEClassifiers().add(userEClass);
+
+ userDataObject =
+ (EDataObject)
+ userEFactory.create(userEClass);
+
+ userDataObject.eSet(userNameEAttribute,"ole");
+ userDataObject.eSet(userPasswordEAttribute,"secret");
+ userDataObject.eSet(userIDEAttribute, "1");
+ userDataObject.eSet(userAgeEAttribute, 33);
+ userDataObject.eSet(userHeightEAttribute, 6.11);
+ userDataObject.eSet(userIsMaleEAttribute, true);
+
+ EList<String> userAliases = new BasicEList<String>();
+ userAliases.add("neo");
+ userAliases.add("trinity");
+ userAliases.add("morpheus");
+
+ userDataObject.eSet( userAliasesEAttribute, userAliases );
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationFileEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationWriteEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationReadEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationExecuteEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationIDEAttribute);
+
+ userEPackage.getEClassifiers().
+ add(authorizationEClass);
+
+ authorizationDataObject0 =
+ (EDataObject)
+ userEFactory.create(authorizationEClass);
+
+ authorizationDataObject1 =
+ (EDataObject)
+ userEFactory.create(authorizationEClass);
+
+ authorizationDataObject0.eSet(authorizationFileEAttribute,"somefile.text");
+ authorizationDataObject0.eSet(authorizationWriteEAttribute, true);
+ authorizationDataObject0.eSet(authorizationReadEAttribute,true);
+ authorizationDataObject0.eSet(authorizationExecuteEAttribute,true);
+ authorizationDataObject0.eSet(authorizationIDEAttribute, "2");
+
+ authorizationDataObject1.eSet(authorizationFileEAttribute,"someOtherfile.text");
+ authorizationDataObject1.eSet(authorizationWriteEAttribute,Boolean.TRUE);
+ authorizationDataObject1.eSet(authorizationReadEAttribute,true);
+ authorizationDataObject1.eSet(authorizationExecuteEAttribute,true);
+ authorizationDataObject1.eSet(authorizationIDEAttribute, "3");
+
+ EList<EDataObject> userDataObjectAuthorizationList =
+ new BasicEList<EDataObject>();
+
+ userDataObjectAuthorizationList.add(authorizationDataObject0);
+ userDataObjectAuthorizationList.add(authorizationDataObject1);
+
+ userDataObject.eSet(
+ userAuthorizationEReference,
+ userDataObjectAuthorizationList);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationIDEAttribute);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationAuthorizationEReference);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationAuthorizationsEReference);
+
+ userEPackage.getEClassifiers().
+ add(configurationEClass);
+
+ configurationDataObject =
+ (EDataObject)
+ userEFactory.create(configurationEClass);
+
+ userDataObject.eSet(
+ userConfigurationEReference,
+ configurationDataObject);
+
+ configurationDataObject.eSet(
+ configurationIDEAttribute,
+ "5");
+
+ configurationDataObject.eSet(
+ configurationAuthorizationEReference,
+ authorizationDataObject0);
+
+ configurationDataObject.eSet(
+ configurationAuthorizationsEReference,
+ userDataObjectAuthorizationList);
+
+ processedEClassifiers =
+ new ArrayList<EClass>();
+
+ eObjectClassCreator =
+ new EObjectClassCreator();
+
+ eObjectClassCreator.
+ create(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ userEClass,
+ processedEClassifiers,
+ TUSCANY_OID_PREFIX_VALUE );
+ }
+} \ No newline at end of file
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataGraphSetupTest.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataGraphSetupTest.java
new file mode 100644
index 0000000000..c05db9f7e2
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataGraphSetupTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.prototype.setup.test;
+
+import javax.naming.NamingException;
+
+import javax.naming.ldap.LdapContext;
+
+import org.apache.tuscany.das.ldap.emf.create.EDataGraphCreator;
+import org.apache.tuscany.das.ldap.schema.emf.destroy.EObjectClassDestroyer;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.sdo.EDataGraph;
+import org.eclipse.emf.ecore.sdo.SDOFactory;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+
+public class EDataGraphSetupTest
+extends CommonSetupTest
+{
+ protected EDataGraph eDataGraph = null;
+ protected boolean readException = false;
+
+ public void tearDown() throws NamingException, Exception
+ {
+ if (dataObjectToRelativeDNCache.containsValue(authorizationDataObject1RDN)
+ || readException)
+ {
+ rootContext.destroySubcontext(authorizationDataObject1RDN);
+ }
+ if (dataObjectToRelativeDNCache.containsValue(authorizationDataObject2RDN)
+ || readException)
+ {
+ rootContext.destroySubcontext(authorizationDataObject2RDN);
+ }
+ if (dataObjectToRelativeDNCache.containsValue(configurationDataObjectRDN)
+ || readException)
+ {
+ rootContext.destroySubcontext(configurationDataObjectRDN);
+ }
+ userContainerContext.destroySubcontext(configurationContainingFeatureRDN);
+
+ userContainerContext.destroySubcontext(authorizationListContainingFeatureRDN);
+
+ EObjectClassDestroyer.
+ destroy(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ authorizationEClass,
+ TUSCANY_OID_PREFIX_VALUE );
+
+ EObjectClassDestroyer.
+ destroy(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ configurationEClass,
+ TUSCANY_OID_PREFIX_VALUE );
+
+ super.tearDown();
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ eObjectClassCreator.
+ create(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ authorizationEClass,
+ processedEClassifiers,
+ TUSCANY_OID_PREFIX_VALUE );
+
+ eObjectClassCreator.
+ create(
+ metaContext,
+ ecoreAttributeTypesContext,
+ ecoreObjectClassesContext,
+ configurationEClass,
+ processedEClassifiers,
+ TUSCANY_OID_PREFIX_VALUE );
+
+ eDataGraph =
+ SDOFactory.
+ eINSTANCE.
+ createEDataGraph();
+
+ eDataGraph.setERootObject(userDataObject);
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getResourceFactoryRegistry().
+ getExtensionToFactoryMap().put
+ ("xml",
+ new XMLResourceFactoryImpl());
+
+ eDataGraph.setResourceSet(resourceSet);
+
+ EDataGraphCreator.create(
+ eDataGraph,
+ rootContext,
+ dataObjectToRelativeDNCache);
+
+ userContainerContext =
+ (LdapContext)
+ rootContext.
+ lookup(userDataObjectRDN);
+
+ authorizationContainerContext =
+ (LdapContext)
+ userContainerContext.
+ lookup(authorizationListContainingFeatureRDN);
+
+ configurationContainerContext =
+ (LdapContext)
+ userContainerContext.
+ lookup(configurationContainingFeatureRDN);
+
+ }
+} \ No newline at end of file
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataObjectSetupTest.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataObjectSetupTest.java
new file mode 100644
index 0000000000..4c91f34e07
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/EDataObjectSetupTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.prototype.setup.test;
+
+import javax.naming.NamingException;
+import javax.naming.ldap.LdapContext;
+
+import org.apache.tuscany.das.ldap.emf.create.EDataObjectCreator;
+
+public class EDataObjectSetupTest
+extends CommonSetupTest
+{
+ public void tearDown() throws NamingException, Exception
+ {
+ super.tearDown();
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ EDataObjectCreator.create(
+ userDataObject,
+ rootContext,
+ dataObjectToRelativeDNCache);
+
+ userContainerContext =
+ (LdapContext)
+ rootContext.
+ lookup(userDataObjectRDN);
+ }
+} \ No newline at end of file
diff --git a/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/LdapDASSetupTest.java b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/LdapDASSetupTest.java
new file mode 100644
index 0000000000..3225868ffe
--- /dev/null
+++ b/das-java/contrib/ldap/das.ldap/src/main/java/org/apache/tuscany/das/ldap/prototype/setup/test/LdapDASSetupTest.java
@@ -0,0 +1,218 @@
+/*
+ * 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.prototype.setup.test;
+
+import java.io.File;
+import java.util.Hashtable;
+import java.util.Map;
+
+import javax.naming.NamingException;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tuscany.das.ldap.prototype.setup.Prototype;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.sdo.EDataGraph;
+import org.eclipse.emf.ecore.sdo.EDataObject;
+import org.eclipse.emf.ecore.sdo.SDOFactory;
+
+public class LdapDASSetupTest
+extends TestCase
+implements Prototype
+{
+ protected Map<EDataObject, String> dataObjectToRelativeDNCache = null;
+ protected EDataGraph eDataGraph = null;
+ protected EDataObject userDataObject = null;
+ protected EDataObject authorizationDataObject0 = null;
+ protected EDataObject authorizationDataObject1 = null;
+ protected EDataObject configurationDataObject = null;
+
+ public void tearDown() throws NamingException, Exception
+ {
+ FileUtils.deleteDirectory(new File("server-work"));
+ }
+
+ public void setUp() throws Exception
+ {
+ dataObjectToRelativeDNCache =
+ new Hashtable<EDataObject, String>();
+
+ userAuthorizationEReference.
+ setEType(authorizationEClass);
+
+ userConfigurationEReference.
+ setEType(configurationEClass);
+
+ configurationAuthorizationEReference.
+ setEType(authorizationEClass);
+
+ configurationAuthorizationsEReference.
+ setEType(authorizationEClass);
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userNameEAttribute );
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userAliasesEAttribute );
+
+ userEClass.
+ getEStructuralFeatures().
+ add( userPasswordEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userAgeEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userHeightEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userIsMaleEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userIDEAttribute );
+ userEClass.
+ getEStructuralFeatures().
+ add( userAuthorizationEReference );
+ userEClass.
+ getEStructuralFeatures().
+ add( userConfigurationEReference );
+
+ userEPackage.getEClassifiers().add(userEClass);
+
+ userDataObject =
+ (EDataObject)
+ userEFactory.create(userEClass);
+
+ userDataObject.eSet(userNameEAttribute,"ole");
+ userDataObject.eSet(userPasswordEAttribute,"secret");
+ userDataObject.eSet(userIDEAttribute, "1");
+ userDataObject.eSet(userAgeEAttribute, 33);
+ userDataObject.eSet(userHeightEAttribute, 6.11);
+ userDataObject.eSet(userIsMaleEAttribute, true);
+
+ EList<String> userAliases = new BasicEList<String>();
+ userAliases.add("neo");
+ userAliases.add("trinity");
+ userAliases.add("morpheus");
+
+ userDataObject.eSet( userAliasesEAttribute, userAliases );
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationFileEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationWriteEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationReadEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationExecuteEAttribute);
+
+ authorizationEClass.
+ getEStructuralFeatures().
+ add(authorizationIDEAttribute);
+
+ userEPackage.getEClassifiers().
+ add(authorizationEClass);
+
+ authorizationDataObject0 =
+ (EDataObject)
+ userEFactory.create(authorizationEClass);
+
+ authorizationDataObject1 =
+ (EDataObject)
+ userEFactory.create(authorizationEClass);
+
+ authorizationDataObject0.eSet(authorizationFileEAttribute,"somefile.text");
+ authorizationDataObject0.eSet(authorizationWriteEAttribute, true);
+ authorizationDataObject0.eSet(authorizationReadEAttribute,true);
+ authorizationDataObject0.eSet(authorizationExecuteEAttribute,true);
+ authorizationDataObject0.eSet(authorizationIDEAttribute, "2");
+
+ authorizationDataObject1.eSet(authorizationFileEAttribute,"someOtherfile.text");
+ authorizationDataObject1.eSet(authorizationWriteEAttribute,Boolean.TRUE);
+ authorizationDataObject1.eSet(authorizationReadEAttribute,true);
+ authorizationDataObject1.eSet(authorizationExecuteEAttribute,true);
+ authorizationDataObject1.eSet(authorizationIDEAttribute, "3");
+
+ EList<EDataObject> userDataObjectAuthorizationList =
+ new BasicEList<EDataObject>();
+
+ userDataObjectAuthorizationList.add(authorizationDataObject0);
+ userDataObjectAuthorizationList.add(authorizationDataObject1);
+
+ userDataObject.eSet(
+ userAuthorizationEReference,
+ userDataObjectAuthorizationList);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationIDEAttribute);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationAuthorizationEReference);
+
+ configurationEClass.
+ getEStructuralFeatures().
+ add(configurationAuthorizationsEReference);
+
+ userEPackage.getEClassifiers().
+ add(configurationEClass);
+
+ configurationDataObject =
+ (EDataObject)
+ userEFactory.create(configurationEClass);
+
+ userDataObject.eSet(
+ userConfigurationEReference,
+ configurationDataObject);
+
+ configurationDataObject.eSet(
+ configurationIDEAttribute,
+ "5");
+
+ configurationDataObject.eSet(
+ configurationAuthorizationEReference,
+ authorizationDataObject0);
+
+ configurationDataObject.eSet(
+ configurationAuthorizationsEReference,
+ userDataObjectAuthorizationList);
+
+
+ eDataGraph =
+ SDOFactory.
+ eINSTANCE.
+ createEDataGraph();
+
+ eDataGraph.setERootObject(userDataObject);
+
+ }
+} \ No newline at end of file