From 92b7b5e45485b8cd7f80ab280bedcd51de176b71 Mon Sep 17 00:00:00 2001
From: gary_williams <gary_williams@localhost>
Date: Mon, 30 Oct 2006 11:23:12 +0000
Subject: [PATCH] functional tests - implement import tasks test suite

---
 opendj-sdk/opends/tests/functional-tests/testcases/backends/backends.xml     |    4 
 opendj-sdk/opends/tests/functional-tests/testcases/backends/import-tasks.xml | 1691 ++++++++++++++++++++++++++++++++++++++---------
 opendj-sdk/opends/tests/functional-tests/shared/functions/dsadm.xml          |  336 +++++++++
 opendj-sdk/opends/tests/functional-tests/shared/data/backends/Exclude.ldif   |   16 
 4 files changed, 1,701 insertions(+), 346 deletions(-)

diff --git a/opendj-sdk/opends/tests/functional-tests/shared/data/backends/Exclude.ldif b/opendj-sdk/opends/tests/functional-tests/shared/data/backends/Exclude.ldif
index 51cadf4..945471b 100644
--- a/opendj-sdk/opends/tests/functional-tests/shared/data/backends/Exclude.ldif
+++ b/opendj-sdk/opends/tests/functional-tests/shared/data/backends/Exclude.ldif
@@ -2860,6 +2860,22 @@
 uniquemember: uid=jwalker, ou=People, dc=example,dc=com
 description: People who can manage QA entries
 
+dn: uid=bbaret, cn=QA Managers,ou=groups,dc=example,dc=com
+cn: Bruno Baret
+sn: Baret
+givenname: Bruno
+objectclass: top
+objectclass: person
+objectclass: organizationalPerson
+objectclass: inetOrgPerson
+l: Grenoble
+uid: bbaret
+mail: bbaret@example.com
+telephonenumber: +1 408 555 4666
+facsimiletelephonenumber: +1 408 555 0121
+roomnumber: 3445
+userpassword: picketer
+
 dn: cn=PD Managers,ou=groups,dc=example,dc=com
 objectclass: top
 objectclass: groupOfUniqueNames
diff --git a/opendj-sdk/opends/tests/functional-tests/shared/functions/dsadm.xml b/opendj-sdk/opends/tests/functional-tests/shared/functions/dsadm.xml
index 8bd203d..ab84d9a 100755
--- a/opendj-sdk/opends/tests/functional-tests/shared/functions/dsadm.xml
+++ b/opendj-sdk/opends/tests/functional-tests/shared/functions/dsadm.xml
@@ -307,6 +307,293 @@
 
     </function>
 
+    <!-- Import Task Function -->
+    <function name="importLdifTask">
+
+    <function-prolog>
+        This function performs an on line import task of an ldif file
+    </function-prolog>
+
+    <function-map-args>
+        <function-required-arg name="dsInstanceHost">
+            Directory Server host name
+        </function-required-arg>
+        <function-required-arg name="dsInstancePort">
+            Directory Server port number
+        </function-required-arg>
+        <function-required-arg name="dsInstanceDn">
+            Directory Server Manager DN
+        </function-required-arg>
+        <function-required-arg name="dsInstancePswd">
+            Directory Server Manager Password
+        </function-required-arg>
+        <function-required-arg name="taskID">
+            The identifier for the task
+        </function-required-arg>
+        <function-required-arg name="ldifFile">
+            The name of the ldif file
+        </function-required-arg>
+        <function-optional-arg name="backEnd" default="'userRoot'">
+            Optional the name of the database backend
+        </function-optional-arg>
+        <function-optional-arg name="isCompressed" default="'FALSE'">
+            Optional imported ldif data file compressed
+        </function-optional-arg>
+        <function-optional-arg name="isEncrypted" default="'FALSE'">
+            Optional imported ldif data file encrypted
+        </function-optional-arg>
+        <function-optional-arg name="rejectsFile" default="' '">
+            Optional name of rejects file
+        </function-optional-arg>
+        <function-optional-arg name="overwriteRejectsFile" default="'FALSE'">
+            Optional name of rejects file
+        </function-optional-arg>
+        <function-optional-arg name="append" default="'FALSE'">
+            Optional append imported ldif data
+        </function-optional-arg>
+        <function-optional-arg name="skipSchemaValidation" default="'FALSE'">
+            Optional don't do schema validation on import
+        </function-optional-arg>
+        <function-optional-arg name="replaceExisting" default="'TRUE'">
+            Optional replace existing data
+        </function-optional-arg>
+        <function-optional-arg name="excludeBranches" default="' '">
+            Optional exclude branches
+        </function-optional-arg>
+        <function-optional-arg name="includeBranches" default="' '">
+            Optional include branches
+        </function-optional-arg>
+        <function-optional-arg name="excludeAttributes" default="' '">
+            Optional exclude attributes
+        </function-optional-arg>
+        <function-optional-arg name="includeAttributes" default="' '">
+            Optional include attributes
+        </function-optional-arg>
+        <function-optional-arg name="excludeFilters" default="' '">
+            Optional exclude filters
+        </function-optional-arg>
+        <function-optional-arg name="includeFilters" default="' '">
+            Optional include filters
+        </function-optional-arg>
+    </function-map-args>
+
+      <sequence>
+
+        <script>
+          taskDN='ds-task-id=%s,cn=Scheduled Tasks,cn=Tasks' % taskID
+        </script>
+        
+        <!-- Build the import task configuration object -->
+        <script>
+          ldifLines=[]
+          ldifLines.append('dn: %s' % taskDN)
+          ldifLines.append('objectclass: top')
+          ldifLines.append('objectclass: ds-task')
+          ldifLines.append('objectclass: ds-task-import')
+          ldifLines.append('ds-task-class-name: org.opends.server.tasks.ImportTask')
+        </script>
+    
+        <script>
+          ldifLines.append('ds-task-import-backend-id: %s' % backEnd )
+          ldifLines.append('ds-task-import-ldif-file: %s' % ldifFile )
+          ldifLines.append('ds-task-import-is-compressed: %s' % isCompressed )
+          ldifLines.append('ds-task-import-is-encrypted: %s' % isEncrypted )
+        </script>
+        
+        <if expr="rejectsFile != ' '">
+          <script>
+            ldifLines.append('ds-task-import-reject-file: %s' % rejectsFile )
+          </script>
+        </if>
+        
+        <script>
+          ldifLines.append('ds-task-import-overwrite-rejects: %s' % overwriteRejectsFile )
+          ldifLines.append('ds-task-import-append: %s' % append )
+          ldifLines.append('ds-task-import-skip-schema-validation: %s' % skipSchemaValidation )
+          ldifLines.append('ds-task-import-replace-existing: %s' % replaceExisting )
+        </script>
+    
+        <iterate var="branch" in="excludeBranches">
+          <sequence>
+            <if expr="branch == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-exclude-branch: %s' % branch )
+            </script>
+          </sequence>
+        </iterate>
+    
+        <iterate var="branch" in="includeBranches">
+          <sequence>
+            <if expr="branch == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-include-branch: %s' % branch )
+            </script>
+          </sequence>
+        </iterate>
+    
+        <iterate var="attribute" in="excludeAttributes">
+          <sequence>
+            <if expr="attribute == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-exclude-attribute: %s' % attribute )
+            </script>
+          </sequence>
+        </iterate>
+    
+        <iterate var="attribute" in="includeAttributes">
+          <sequence>
+            <if expr="attribute == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-include-attribute: %s' % attribute )
+            </script>
+          </sequence>
+        </iterate>
+    
+        <iterate var="filter" in="excludeFilters">
+          <sequence>
+            <if expr="filter == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-exclude-filter: %s' % filter)
+            </script>
+          </sequence>
+        </iterate>
+    
+        <iterate var="filter" in="includeFilters">
+          <sequence>
+            <if expr="filter == ' '">
+              <break/>
+            </if>
+            <script>
+              ldifLines.append('ds-task-import-include-filter: %s' % filter)
+            </script>
+          </sequence>
+        </iterate>
+
+        <!-- Write out the import-task ldif -->
+        <script>
+          outfile = open('%s/import-task.ldif' % TMP_DATA_DIR,"w")
+            
+          for line in ldifLines:
+            outfile.write("%s\n" % line)
+            
+          outfile.close()
+        </script>
+
+        
+        <!-- Copy the import-task ldif to remote host -->
+        <message>'Copy import task ldif file.'</message>
+        <call function="'copyfile'">
+          { 'srcfile'    : '%s/import-task.ldif' % TMP_DATA_DIR,
+            'destfile'   : '%s/import-task.ldif' % STAGED_DATA_DIR,
+            'remotehost' : STAF_REMOTE_HOSTNAME }
+        </call>
+
+        <!-- On line Import Task with ldapmodify -->
+        <message>
+          'ldapmodify.%s -a -h %s -p %s -D "%s" -w %s' % (fileExt,dsInstanceHost,dsInstancePort,dsInstanceDn,dsInstancePswd)
+        </message>
+        <process name="'On line Import Task'">
+          <location>'%s' % (STAF_REMOTE_HOSTNAME) </location>
+          <command>'%s/ldapmodify.%s' % (OPENDS_BINPATH,fileExt)</command>
+          <parms>'-a -h %s -p %s -D "%s" -w %s' % (dsInstanceHost,dsInstancePort,dsInstanceDn,dsInstancePswd)</parms>
+          <workdir>'%s' % (OPENDS_BINPATH)</workdir>
+          <envs>
+                ['PATH=/bin:/usr/bin:%s' % (OPENDS_BINPATH), 'JAVA_HOME=%s' % (JAVA_HOME)]
+          </envs>
+          <stdin>'%s/import-task.ldif' % STAGED_DATA_DIR</stdin>
+          <stderr mode="'stdout'"/>
+          <returnstdout/>
+        </process>
+
+        <script>
+          importTaskRC=RC
+          importTaskResult=STAXResult
+        </script>
+
+        <call function="'checkRC'">
+          { 'returncode' : importTaskRC ,
+            'result'     : importTaskResult }
+        </call>
+          
+        <!-- Check that the task is completed -->
+        <script>
+          loopRC=1
+        </script>
+
+        <script> 
+          import re 
+          searchre = re.compile('ds-task-state: COMPLETED_SUCCESSFULLY') 
+        </script> 
+
+        <!-- Wait for the task to be COMPLETED_SUCCESSFULLY -->
+        <loop from="1" to="5" while="loopRC != 0">
+
+          <sequence>
+          
+            <message>
+              'ldapsearch.%s -h %s -p %s -D "%s" -w %s -s base -b "%s" "objectclass=*" ds-task-state' % (fileExt,dsInstanceHost,dsInstancePort,dsInstanceDn,dsInstancePswd,taskDN)
+            </message>
+            <process name="'Search On line Import Task'">
+              <location>'%s' % (STAF_REMOTE_HOSTNAME) </location>
+              <command>'%s/ldapsearch.%s' % (OPENDS_BINPATH,fileExt)</command>
+              <parms>'-h %s -p %s -D "%s" -w %s -s base -b "%s" "objectclass=*" ds-task-state' % (dsInstanceHost,dsInstancePort,dsInstanceDn,dsInstancePswd,taskDN)</parms>
+              <workdir>'%s' % (OPENDS_BINPATH)</workdir>
+              <envs>
+                    ['PATH=/bin:/usr/bin:%s' % (OPENDS_BINPATH), 'JAVA_HOME=%s' % (JAVA_HOME)]
+              </envs>
+              <stderr mode="'stdout'"/>
+              <returnstdout/>
+            </process>
+            
+            <script>
+              searchRC=RC
+              searchResult=STAXResult
+            </script>
+    
+            <script> 
+              result = STAXResult[0][1]
+            </script> 
+    
+            <if expr='re.search(searchre, result) != None'>
+              <sequence>
+                <script>loopRC=0</script>
+              </sequence>
+            <else>
+              <message log="1" level="'Warning'">
+                'No match on ds-task-state.'
+              </message>
+            </else>
+            </if>
+            
+            <call function="'checkRC'">
+                { 'returncode' : searchRC ,
+                  'result'     : searchResult }
+            </call>
+          
+            <call function="'Sleep'">
+              { 'sleepForMilliSeconds' : '2000' }
+            </call>
+            
+          </sequence>
+          
+        </loop>
+
+        <return>loopRC</return>
+
+      </sequence>
+
+    </function>
+
     <!-- Check Import Function -->
     <function name="checkImport">
 
@@ -336,18 +623,30 @@
     </function-map-args>
     
     <sequence>
-      
-    <!-- StartDS -->
-    <call function="'startDS'">
-      { 'dsbinpath' : '%s' % (OPENDS_BINPATH) }
-    </call>
+
+    <!-- If we don't want to start DS then we don't need to stop it -->
+    <script>stopDS=startDS</script>
     
-    <!-- Wait for DS to start -->
-    <call function="'isAlive'">
-      { 'noOfLoops'        : 5 ,
-        'noOfMilliSeconds' : 2000 }
-    </call>
-        
+    <!-- Do we need to start the DS -->
+    <if expr="startDS == 'yes'">
+    
+      <sequence>
+      
+      <!-- StartDS -->
+      <call function="'startDS'">
+        { 'dsbinpath' : '%s' % (OPENDS_BINPATH) }
+      </call>
+      
+      <!-- Wait for DS to start -->
+      <call function="'isAlive'">
+        { 'noOfLoops'        : 5 ,
+          'noOfMilliSeconds' : 2000 }
+      </call>
+
+      </sequence>
+      
+    </if>
+    
     <!-- Search for expected entries -->    
     <iterate var="expectedEntry" in="expectedEntries">
       
@@ -400,12 +699,17 @@
     </sequence>
       
     </iterate>
-    
-    <!-- StopDS -->
-    <call function="'stopDS'">
-      { 'dsInstancePort' : '%s' % (DIRECTORY_INSTANCE_PORT) }
-    </call>
 
+    <!-- Do we need to stop the Directory Server -->
+    <if expr="stopDS == 'yes'">
+      
+      <!-- StopDS -->
+      <call function="'stopDS'">
+        { 'dsInstancePort' : '%s' % (DIRECTORY_INSTANCE_PORT) }
+      </call>  
+    
+    </if>
+    
     </sequence>
 
   </function>
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/backends/backends.xml b/opendj-sdk/opends/tests/functional-tests/testcases/backends/backends.xml
index dd175ea..18eb5c9 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/backends/backends.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/backends/backends.xml
@@ -37,6 +37,10 @@
           file="'%s/testcases/backends/import.xml' % (TESTS_DIR)"/>
 	<call function="'main_import'" />
 
+        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
+          file="'%s/testcases/backends/import-tasks.xml' % (TESTS_DIR)"/>
+	<call function="'main_import-tasks'" />
+
       </sequence>
 
   </function>
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/backends/import-tasks.xml b/opendj-sdk/opends/tests/functional-tests/testcases/backends/import-tasks.xml
index 5b6da66..e9d8c20 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/backends/import-tasks.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/backends/import-tasks.xml
@@ -28,341 +28,1372 @@
 
 <stax>
 
-  <defaultcall function="main"/>
+  <defaultcall function="main_import-tasks"/>
 
-  <function name="main">
+  <function name="main_import-tasks">
 
     <sequence>
-
-      <!--- Test Suite information
-        #@TestSuiteName       Backend Import Tasks Tests
-        #@TestSuitePurpose    Verify that the basic import using the task based functionality is working in the Directory Server.
-        #@TestSuiteID         Import Tasks Tests
-        #@TestSuiteGroup      Import-Tasks
-        #@TestGroup           Backend
-        #@TestScript          import-tasks.xml
-        #@TestHTMLLink        http://opends.dev.java.net/
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: LDIF Default
-        #@TestID              LDIF Default
-        #@TestPurpose         Verify an import task of a LDIF file using the default backend.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: LDIF Non Default
-        #@TestID              LDIF Non Default
-        #@TestPurpose         Verify an import task of a LDIF file using a differrent backend to the default.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Include Branch
-        #@TestID              Fractional Include Branch
-        #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be included in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Include Branches
-        #@TestID              Fractional Include Branches
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be included in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Exclude Branch
-        #@TestID              Fractional Exclude Branch
-        #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be excluded in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Exclude Branches
-        #@TestID              Fractional Exclude Branches
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be excluded in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Branches Mix
-        #@TestID              Fractional Branches Mix
-        #@TestPurpose         Verify an import task of a LDIF file specifying a mix of include and exclude branches.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Include Attribute
-        #@TestID              Fractional Include Attribute
-        #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be included in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Include Attributes
-        #@TestID              Fractional Include Attributes
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple attributes that should be included in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Exclude Attribute
-        #@TestID              Fractional Exclude Attribute
-        #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be excluded in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Exclude Attribute
-        #@TestID              Fractional Exclude Attributes
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple attribute that should be excluded in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Mix
-        #@TestID              Fractional Mix
-        #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional attributes and branches.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Include
-        #@TestID              Filtered Include
-        #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are included in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Exclude
-        #@TestID              Filtered Exclude
-        #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are excluded in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Includes
-        #@TestID              Filtered Includes
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are included in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Excludes
-        #@TestID              Filtered Excludes
-        #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are excluded in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Includes Complex
-        #@TestID              Filtered Includes Complex
-        #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are included in the import.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Filtered Excludes Complex
-        #@TestID              Filtered Excludes Complex
-        #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are excluded in the import.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Fractional Filtered Mix
-        #@TestID              Fractional Filtered Mix
-        #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional and filtered.
-        #@TestPreamble
-        #@TestSteps
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Append
-        #@TestID              Append
-        #@TestPurpose         Verify an import task of a LDIF file specifying that the import process should append to the existing database.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks:Append Replace Existing
-        #@TestID              Append Replace Existing
-        #@TestPurpose         Verify an import task of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Compressed
-        #@TestID              Compressed
-        #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is compressed.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Encrypted
-        #@TestID              Encrypted
-        #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is encrypted.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Hashed Signed
-        #@TestID              Hashed Signed
-        #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is hashed/signed.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Rejects File
-        #@TestID              Rejects File
-        #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Rejects File Overwrite
-        #@TestID              Rejects File Overwrite
-        #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Skip Schema Validation Accept
-        #@TestID              Skip Schema Validation Accept
-        #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is accepted when skip schema validation is specified
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
-
-      <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Skip Schema Validation Reject
-        #@TestID              Skip Schema Validation Reject
-        #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
+    
+      <parallel>
       
-       <!--- Test Case information
-        #@TestMarker          Backend Import Tasks Tests
-        #@TestName            Import Tasks: Error Codes
-        #@TestID              Error Codes
-        #@TestPurpose         Verify an import task fails with an error code.
-        #@TestPreamble
-        #@TestSteps           
-        #@TestPostamble
-        #@TestResult
-      -->
+        <block name="'Block DS Process Active'">
+
+          <!--- Block : DS -->
+          <testcase name="'StartDS'">
+            <sequence>
+              <message>
+                 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
+              </message>
+     
+              <!--- Start DS -->
+              <call function="'startDS'">
+                { 'dsbinpath' : '%s' % (OPENDS_BINPATH) }
+              </call>
+    
+              <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+              </call>
+    
+            </sequence>
+    
+          </testcase>
+  
+        <!--- Block : DS -->
+        </block>
+       
+        <!--- Block : Test Cases -->
+        <block name="'Block Test Cases Active'">
+       
+          <sequence>
+         
+            <!--- Check that DS started -->
+            <call function="'isAlive'">
+              { 'noOfLoops'        : 5 ,
+                'noOfMilliSeconds' : 2000 }
+            </call>
+  
+            <!--- Test Suite information
+              #@TestSuiteName       Backend Import Tasks Tests
+              #@TestSuitePurpose    Verify that the basic import using the task based functionality is working in the Directory Server.
+              #@TestSuiteID         Import Tasks Tests
+              #@TestSuiteGroup      Import-Tasks
+              #@TestGroup           Backend
+              #@TestScript          import-tasks.xml
+              #@TestHTMLLink        http://opends.dev.java.net/
+            -->
       
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: LDIF Default
+              #@TestID              LDIF Default
+              #@TestPurpose         Verify an import task of a LDIF file using the default backend.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: LDIF Default'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+      
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'         : STAXCurrentTestcase,
+                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
+                  }
+                </call>
+      
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                     'startDS'        : 'no' 
+                   }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+      
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: LDIF Non Default
+              #@TestID              LDIF Non Default
+              #@TestPurpose         Verify an import task of a LDIF file using a differrent backend to the default.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+ 
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Include Branch
+              #@TestID              Fractional Include Branch
+              #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be included in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+            
+            <testcase name="'Import Tasks: Fractional Include Branch'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeBranches' : 'dc=com',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Include Branches
+              #@TestID              Fractional Include Branches
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be included in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Include Branches'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeBranches' : ['dc=com','dc=example,dc=com']
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Exclude Branch
+              #@TestID              Fractional Exclude Branch
+              #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be excluded in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Exclude Branch'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Exclude Branches
+              #@TestID              Fractional Exclude Branches
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be excluded in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: Fractional Exclude Branches'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeBranches' : ['ou=Departed,ou=People,dc=example,dc=com',
+                                         'cn=QA Managers,ou=groups,dc=example,dc=com']
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com',
+                                         'uid=bbaret,cn=QA Managers,ou=groups,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Branches Mix
+              #@TestID              Fractional Branches Mix
+              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of include and exclude branches.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+            
+            <testcase name="'Import Tasks: Fractional Branches Mix'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'includeBranches' : 'dc=com',
+                    'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Include Attribute
+              #@TestID              Fractional Include Attribute
+              #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be included in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: Fractional Include Attribute'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeAttributes' : 'dc',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['dc=com','dc=example,dc=com'],
+                    'missingEntries'  : ['ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Include Attributes
+              #@TestID              Fractional Include Attributes
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple attributes that should be included in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: Fractional Include Attributes'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeAttributes' : ['dc','cn','ou','sn']
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Exclude Attribute
+              #@TestID              Fractional Exclude Attribute
+              #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be excluded in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Exclude Attribute'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'            : STAXCurrentTestcase,
+                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeAttributes' : 'userpassword'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
+                    'missingAttributes' : ['userpassword'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Exclude Attributes
+              #@TestID              Fractional Exclude Attributes
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple attribute that should be excluded in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Exclude Attributes'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'            : STAXCurrentTestcase,
+                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeAttributes' : ['userpassword','mail','roomnumber']
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
+                    'missingAttributes' : ['userpassword','mail','roomnumber'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Mix
+              #@TestID              Fractional Mix
+              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional attributes and branches.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Mix'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'            : STAXCurrentTestcase,
+                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'includeBranches'   : ['dc=com','dc=example,dc=com','ou=People,dc=example,dc=com'],
+                    'excludeBranches'   : 'ou=Departed,ou=People,dc=example,dc=com',
+                    'includeAttributes' : ['dc','cn','ou','sn'],
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller, ou=People, dc=example,dc=com',
+                                         'uid=rhunt, ou=People, dc=example,dc=com'],
+                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Include
+              #@TestID              Filtered Include
+              #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are included in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: Filtered Include'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeFilters'  : 'objectclass=*',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Exclude
+              #@TestID              Filtered Exclude
+              #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are excluded in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Filtered Exclude'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeFilters'  : 'objectclass=person',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['dc=example,dc=com',
+                                         'ou=People,dc=example,dc=com'],
+                    'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Includes
+              #@TestID              Filtered Includes
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are included in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Filtered Includes'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeFilters'  : ['objectclass=domain*','objectclass=organizationalunit']
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['dc=example,dc=com',
+                                         'ou=People,dc=example,dc=com'],
+                    'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                        'uid=dmiller,ou=People,dc=example,dc=com',
+                                        'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Excludes
+              #@TestID              Filtered Excludes
+              #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are excluded in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+     
+            <testcase name="'Import Tasks: Filtered Excludes'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeFilters'  : ['objectclass=person','objectclass=organizationalunit'],
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['dc=example,dc=com'],
+                    'missingEntries'  : ['ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Includes Complex
+              #@TestID              Filtered Includes Complex
+              #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are included in the import.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+     
+            <testcase name="'Import Tasks: Filtered Includes Complex'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
+                    'includeFilters'  : '|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Filtered Excludes Complex
+              #@TestID              Filtered Excludes Complex
+              #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are excluded in the import.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Filtered Excludes Complex'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeFilters'  : '&amp;(objectclass=person)(ou=Departed)',
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
+                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Fractional Filtered Mix
+              #@TestID              Fractional Filtered Mix
+              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional and filtered.
+              #@TestPreamble
+              #@TestSteps
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Fractional Filtered Mix'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'            : STAXCurrentTestcase,
+                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
+                    'excludeFilters'    : '&amp;(objectclass=person)(ou=Departed)',
+                    'includeBranches'   : 'dc=com',
+                    'excludeAttributes' : 'userpassword'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
+                    'missingAttributes' : ['userpassword'],
+                    'startDS'           : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Append
+              #@TestID              Append
+              #@TestPurpose         Verify an import task of a LDIF file specifying that the import process should append to the existing database.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Append'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'         : STAXCurrentTestcase,
+                    'ldifFile'       : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
+                    'append'         : 'TRUE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
+                                          'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                          'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks:Append Replace Existing
+              #@TestID              Append Replace Existing
+              #@TestPurpose         Verify an import task of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Append Replace Existing'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'          : STAXCurrentTestcase,
+                    'ldifFile'        : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
+                    'append'          : 'TRUE',
+                    'replaceExisting' : 'TRUE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
+                                          'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
+                                          'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Compressed
+              #@TestID              Compressed
+              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is compressed.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <testcase name="'Import Tasks: Compressed'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'         : STAXCurrentTestcase,
+                    'ldifFile'       : '%s/backends/Example.ldif.gz' % STAGED_DATA_DIR,
+                    'isCompressed'   : 'TRUE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Encrypted
+              #@TestID              Encrypted
+              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is encrypted.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+            
+            <testcase name="'Import Tasks: Encrypted'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'         : STAXCurrentTestcase,
+                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
+                    'isEncrypted'    : 'TRUE'
+                  }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+
+                <!-- This test should fail. -->
+                <tcstatus result="'fail'"/>
+                <message log="1" level="'Error'">
+                 'Error: Known bug. Issue 839: Encrypted LDIF export is not implemented'
+                </message>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Hashed Signed
+              #@TestID              Hashed Signed
+              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is hashed/signed.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <!-- Test Not Implemented. Feature not avaliable -->
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Rejects File
+              #@TestID              Rejects File
+              #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Rejects File'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'         : STAXCurrentTestcase,
+                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
+                    'rejectsFile'    : './rejects'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+
+                <!-- Should check there is a rejects file and the contents are correct -->
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Rejects File Overwrite
+              #@TestID              Rejects File Overwrite
+              #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Rejects File'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'               : STAXCurrentTestcase,
+                    'ldifFile'             : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
+                    'rejectsFile'          : './rejects',
+                    'overwriteRejectsFile' : 'TRUE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=rhunt,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+
+                <!-- Should check there is a rejects file and the contents are correct -->
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Skip Schema Validation Accept
+              #@TestID              Skip Schema Validation Accept
+              #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is accepted when skip schema validation is specified
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+      
+            <testcase name="'Import Tasks: Skip Schema Validation Accept'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'               : STAXCurrentTestcase,
+                    'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
+                    'skipSchemaValidation' : 'TRUE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=dmiller,ou=People,dc=example,dc=com',
+                                         'uid=kwinters,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+            
+            <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Skip Schema Validation Reject
+              #@TestID              Skip Schema Validation Reject
+              #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+            
+            <testcase name="'Import Tasks: Skip Schema Validation Reject'">
+      
+              <sequence>
+      
+                <call function="'testCaseStartBanner'"/>
+
+                <call function="'importLdifTask'">
+                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
+                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
+                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
+                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
+                    'taskID'               : STAXCurrentTestcase,
+                    'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
+                    'skipSchemaValidation' : 'FALSE'
+                  }
+                </call>
+
+                <call function="'checktestRC'">
+                  { 'returncode' : RC ,
+                    'result'     : STAXResult }
+                </call>
+      
+                <call function="'checkImport'">
+                  { 'expectedEntries' : ['uid=dmiller,ou=People,dc=example,dc=com'],
+                    'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
+                                         'uid=kwinters,ou=People,dc=example,dc=com'],
+                    'startDS'         : 'no'
+                  }
+                </call>
+                
+                <call function="'testCaseEndBanner'"/>
+      
+              </sequence>
+      
+            </testcase>
+
+             <!--- Test Case information
+              #@TestMarker          Backend Import Tasks Tests
+              #@TestName            Import Tasks: Error Codes
+              #@TestID              Error Codes
+              #@TestPurpose         Verify an import task fails with an error code.
+              #@TestPreamble
+              #@TestSteps           
+              #@TestPostamble
+              #@TestResult
+            -->
+
+            <!-- Need to know what the error codes are -->
+            
+            <!--- Test Case : Stop DS -->
+            <testcase name="'StopDS'">
+              <sequence>
+                <message>
+                   'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT)
+                </message>
+       
+                <!--- Stop DS -->
+                <call function="'stopDS'">
+                  { 'dsInstancePort' : '%s' % (DIRECTORY_INSTANCE_PORT) }
+                </call>
+      
+                <call function="'checktestRC'">
+                    { 'returncode' : RC ,
+                      'result'     : STAXResult }
+                </call>
+      
+              </sequence>
+      
+            </testcase>
+          
+          </sequence>
+
+        <!--- Block : Test Cases -->  
+        </block>
+
+      </parallel>
+
     </sequence>
 
   </function>

--
Gitblit v1.10.0