You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/12/08 16:38:19 UTC
svn commit: r1043457 -
/directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java
Author: pamarcelot
Date: Wed Dec 8 15:38:19 2010
New Revision: 1043457
URL: http://svn.apache.org/viewvc?rev=1043457&view=rev
Log:
Added a test for the ConfigWriter.
Added:
directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java
Added: directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java?rev=1043457&view=auto
==============================================================================
--- directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java (added)
+++ directory/apacheds/branches/server-config-annotations/server-config/src/test/java/org/apache/directory/server/config/ConfigWriterTest.java Wed Dec 8 15:38:19 2010
@@ -0,0 +1,136 @@
+/*
+ * 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.directory.server.config;
+
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.directory.junit.tools.Concurrent;
+import org.apache.directory.junit.tools.ConcurrentJunitRunner;
+import org.apache.directory.server.config.beans.ConfigBean;
+import org.apache.directory.server.core.partition.ldif.SingleFileLdifPartition;
+import org.apache.directory.shared.ldap.ldif.LdifEntry;
+import org.apache.directory.shared.ldap.ldif.LdifReader;
+import org.apache.directory.shared.ldap.name.DN;
+import org.apache.directory.shared.ldap.schema.SchemaManager;
+import org.apache.directory.shared.ldap.schema.ldif.extractor.SchemaLdifExtractor;
+import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
+import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
+import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
+import org.apache.directory.shared.ldap.schema.registries.SchemaLoader;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Test class for ConfigPartitionReader
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+@RunWith(ConcurrentJunitRunner.class)
+@Concurrent()
+public class ConfigWriterTest
+{
+ private static SchemaManager schemaManager;
+
+ private static File workDir = new File( System.getProperty( "java.io.tmpdir" ) + "/server-work" );
+
+
+ @BeforeClass
+ public static void readConfig() throws Exception
+ {
+ FileUtils.deleteDirectory( workDir );
+ workDir.mkdir();
+
+ String workingDirectory = workDir.getPath();
+ // Extract the schema on disk (a brand new one) and load the registries
+ File schemaRepository = new File( workingDirectory, "schema" );
+
+ if ( schemaRepository.exists() )
+ {
+ FileUtils.deleteDirectory( schemaRepository );
+ }
+
+ SchemaLdifExtractor extractor = new DefaultSchemaLdifExtractor( new File( workingDirectory ) );
+ extractor.extractOrCopy();
+
+ SchemaLoader loader = new LdifSchemaLoader( schemaRepository );
+ schemaManager = new DefaultSchemaManager( loader );
+
+ // We have to load the schema now, otherwise we won't be able
+ // to initialize the Partitions, as we won't be able to parse
+ // and normalize their suffix DN
+ schemaManager.loadAllEnabled();
+
+ List<Throwable> errors = schemaManager.getErrors();
+
+ if ( errors.size() != 0 )
+ {
+ throw new Exception( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
+ }
+ }
+
+
+ @Test
+ public void testConfigReader() throws Exception
+ {
+ // Extracting of the config file
+ File configDir = new File( workDir, "configReader" ); // could be any directory, cause the config is now in a single file
+ String configFile = LdifConfigExtractor.extractSingleFileConfig( configDir, "config.ldif", true );
+
+ // Creating of the config partition
+ SingleFileLdifPartition configPartition = new SingleFileLdifPartition( configFile );
+ configPartition.setId( "config" );
+ configPartition.setSuffix( new DN( "ou=config" ) );
+ configPartition.setSchemaManager( schemaManager );
+ configPartition.initialize();
+
+ // Reading the config partition
+ ConfigPartitionReader cpReader = new ConfigPartitionReader( configPartition, workDir );
+ ConfigBean configBean = cpReader.readConfig();
+ assertNotNull( configBean );
+
+ // Creating the config writer
+ ConfigWriter configWriter = new ConfigWriter( schemaManager, configBean );
+
+ // Reading the original config file
+ LdifReader ldifReader = new LdifReader( configFile );
+ List<LdifEntry> originalConfigEntries = new ArrayList<LdifEntry>();
+ while ( ldifReader.hasNext() )
+ {
+ originalConfigEntries.add( ldifReader.next() );
+ }
+
+ // Comparing the number of entries
+ assertEquals( originalConfigEntries.size(), configWriter.getConvertedLdifEntries().size() );
+
+ // Destroying the config partition
+ configPartition.destroy();
+ }
+}