mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gary_williams
04.14.2009 ccb383c5308f88916e6946ef9479cedef8d98481
opends/tests/staf-tests/functional-tests/testcases/backends/import.xml
@@ -23,7 +23,7 @@
 !
 ! CDDL HEADER END
 !
 !      Copyright 2006-2008 Sun Microsystems, Inc.
 !      Copyright 2006-2009 Sun Microsystems, Inc.
 ! -->
<stax>
@@ -35,1279 +35,1297 @@
    <sequence>
      <block name="'import'">
        <sequence>
          <script>
            if not CurrentTestPath.has_key('group'):
              CurrentTestPath['group']='backends'
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
          #@TestSuiteName       Backend Import Tests
          #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
          #@TestSuiteID         Import Tests
          #@TestSuiteGroup      Import
          #@TestGroup           Backend
          #@TestScript          import.xml
          #@TestHTMLLink        http://opends.dev.java.net/
          -->
        <try>
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/backends/backend_setup.xml' % (TESTS_DIR)"/>
          <call function="'backend_setup'"> { 'startDS' : False } </call>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: LDIF Default
          #@TestID              LDIF Default
          #@TestPurpose         Verify an import of a LDIF file using the default backend.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -l ../ldif/Example.ldif -n "userRoot"
          #@TestPostamble
          #@TestResult
          -->
          <sequence>
            <script>
              if not CurrentTestPath.has_key('group'):
                CurrentTestPath['group']='backends'
              CurrentTestPath['suite']=STAXCurrentBlock
            </script>
            <call function="'testSuite_Preamble'"/>
            
          <testcase name="getTestCaseName('LDIF Default')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'    : STAF_REMOTE_HOSTNAME ,
                  'dsLdifFile'  : '%s/backends/Example.ldif' % remote.data,
                  'dsBackEnd'   : DIRECTORY_INSTANCE_BE
                }
              </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'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: LDIF Non Default
          #@TestID              LDIF Non Default
          #@TestPurpose         Verify an import of a LDIF file using a differrent backend to the default.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "nonDefault" -l ../ldif/Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <!--  Not clear how to create a second backend
          <testcase name="getTestCaseName('LDIF Non Default')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % remote.data,
                  'backEnd'     : 'nonDefault' }
              </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'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
    -->
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Branch
          #@TestID              Fractional Include Branch
          #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Include Branch')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeBranch' : ['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'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Branch with backend ID
          #@TestID              Fractional Include Branch
          #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import
                                along with the backendID.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Include Branch with backend ID')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeBranch' : ['dc=com'],
                  'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                }
              </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'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Branches
          #@TestID              Fractional Include Branches
          #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Include Branches')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeBranch' : ['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'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Branch
          #@TestID              Fractional Exclude Branch
          #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Exclude Branch')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeBranch' : ['ou=Departed,ou=People,dc=example,dc=com'],
                  'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Branches
          #@TestID              Fractional Exclude Branches
          #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Exclude Branches')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeBranch' : ['ou=Departed,ou=People,dc=example,dc=com'],
                  'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Branches Mix
          #@TestID              Fractional Branches Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of include and exclude branches.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Branches Mix')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                  'dsIncludeBranch' : ['dc=com'],
                  'dsExcludeBranch' : ['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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Attribute
          #@TestID              Fractional Include Attribute
          #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -i dc -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Include Attribute')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeAttribute' : ['dc'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Attributes
          #@TestID              Fractional Include Attributes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple attributes that should be included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -i cn -i dc -i ou -i sn -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Include Attributes')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeAttribute' : ['dc','cn','ou','sn'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Attribute
          #@TestID              Fractional Exclude Attribute
          #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be excluded in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -l Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Exclude Attribute')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeAttribute' : ['userpassword'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                  'missingAttributes' : ['userpassword']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Attributes
          #@TestID              Fractional Exclude Attributes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple attribute that should be excluded in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -e mail -e roomnumber -l Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Exclude Attributes')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeAttribute' : ['userpassword','mail','roomnumber'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                  'missingAttributes' : ['userpassword']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Mix
          #@TestID              Fractional Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional attributes and branches.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Mix')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                  'dsIncludeAttribute' : ['dc','cn','ou','sn'],
                  'dsIncludeBranch'    : ['dc=com','dc=example,dc=com','ou=People,dc=example,dc=com'],
                  'dsExcludeBranch'    : ['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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Include
          #@TestID              Filtered Include
          #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -I "objectclass=*" -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Include')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeFilter'    : ['objectclass=*'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Exclude
          #@TestID              Filtered Exclude
          #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Exclude')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeFilter'    : ['objectclass=person'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Includes
          #@TestID              Filtered Includes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Includes')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeFilter'    : ['objectclass=domain','objectclass=organizationalunit'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Excludes
          #@TestID              Filtered Excludes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Excludes')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeFilter'    : ['objectclass=person','objectclass=organizationalunit'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['dc=example,dc=com'],
                  'missingEntries'  : ['ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Includes Complex
          #@TestID              Filtered Includes Complex
          #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Includes Complex')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                  'dsIncludeFilter'    : ['|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Excludes Complex
          #@TestID              Filtered Excludes Complex
          #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Filtered Excludes Complex')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeFilter'    : ['&amp;(objectclass=person)(ou=Departed)'],
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Filtered Mix
          #@TestID              Fractional Filtered Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional and filtered.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Fractional Filtered Mix')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                  'dsExcludeFilter'    : ['&amp;(objectclass=person)(ou=Departed)'],
                  'dsIncludeBranch'    : ['dc=com'],
                  'dsExcludeAttribute' : ['userpassword']
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Append
          #@TestID              Append
          #@TestPurpose         Verify an import of a LDIF file specifying that the import process should append to the existing database.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Append')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Append.ldif' % remote.data,
                  'dsAppend'           : 'TRUE',
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Append Replace Existing
          #@TestID              Append Replace Existing
          #@TestPurpose         Verify an import of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Append Replace Existing')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Append.ldif' % remote.data,
                  'dsAppend'           : 'TRUE',
                  'dsReplaceExisting'  : 'TRUE',
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Compressed
          #@TestID              Compressed
          #@TestPurpose         Verify an import of a LDIF file specifying the data to import is compressed.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Compressed')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Example.ldif.gz' % remote.data,
                  'dsIsCompressed'     : 'TRUE',
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Encrypted
          #@TestID              Encrypted
          #@TestPurpose         Verify an import of a LDIF file specifying the data to import is encrypted.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Encrypted')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                  'dsIsEncrypted'      : 'TRUE',
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <!-- Known issue -->
              <call function="'checktestRC'">
                { 'returncode' : 1 ,
                  'expected'   : 0 ,
                  'result'     : 'Encrypted LDIF export is not implemented',
                  'issue'      : '839'
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Hashed Signed
          #@TestID              Hashed Signed
          #@TestPurpose         Verify an import 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 Tests
          #@TestName            Backend: Import: Rejects File
          #@TestID              Rejects File
          #@TestPurpose         Verify an import 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="getTestCaseName('Rejects File')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                  'dsRejectFile'       : '%s/rejects.txt' % remote.temp,
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Rejects File Overwrite
          #@TestID              Rejects File Overwrite
          #@TestPurpose         Verify an import 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="getTestCaseName('Rejects File Overwrite')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                  'dsRejectFile'       : '%s/rejects.txt' % remote.temp,
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Skip Schema Validation Accept
          #@TestID              Skip Schema Validation Accept
          #@TestPurpose         Verify an import of a LDIF file containing invalided schema is accepted when skip schema validation is specified
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Skip Schema Validation Accept')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'             : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'             : '%s/backends/Schema.ldif' % remote.data,
                  'dsSkipSchemaValidation' : 'TRUE',
                  'dsBackEnd'              : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Skip Schema Validation Reject
          #@TestID              skip schema validation reject
          #@TestPurpose         Verify an import of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="getTestCaseName('Skip Schema Validation Reject')">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'ImportLdifWithScript'">
                  { 'location'         : STAF_REMOTE_HOSTNAME,
                  'dsLdifFile'         : '%s/backends/Schema.ldif' % remote.data,
                  'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                  }
              </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']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Error Codes
          #@TestID              Error Codes
          #@TestPurpose         Verify an import fails with an error code.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <!-- Need to know what the error codes are -->
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/backends/backend_cleanup.xml' % (TESTS_DIR)"/>
          <call function="'backend_cleanup'"> { 'stopDS' : False } </call>
          <call function="'testSuite_Postamble'"/>
            <!--- Test Suite information
            #@TestSuiteName       Backend Import Tests
            #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
            #@TestSuiteID         Import Tests
            #@TestSuiteGroup      Import
            #@TestGroup           Backend
            #@TestScript          import.xml
            #@TestHTMLLink        http://opends.dev.java.net/
            -->
  
        </sequence>
            <call function="'common_setup'">
              {
                'quickStart'  : False ,
                'startServer' : False ,
                'loadData'    : False ,
                'stopServer'  : False
              }
            </call>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: LDIF Default
            #@TestID              LDIF Default
            #@TestPurpose         Verify an import of a LDIF file using the default backend.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -l ../ldif/Example.ldif -n "userRoot"
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('LDIF Default')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'    : STAF_REMOTE_HOSTNAME ,
                    'dsLdifFile'  : '%s/backends/Example.ldif' % remote.data,
                    'dsBackEnd'   : DIRECTORY_INSTANCE_BE
                  }
                </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'] }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: LDIF Non Default
            #@TestID              LDIF Non Default
            #@TestPurpose         Verify an import of a LDIF file using a differrent backend to the default.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "nonDefault" -l ../ldif/Example.ldif
            #@TestPostamble
            #@TestResult
            -->
            <!--  Not clear how to create a second backend
            <testcase name="getTestCaseName('LDIF Non Default')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdif'">
                  { 'ldifFile'    : '%s/backends/Example.ldif' % remote.data,
                    'backEnd'     : 'nonDefault' }
                </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'] }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      -->
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Include Branch
            #@TestID              Fractional Include Branch
            #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Include Branch')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeBranch' : ['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'] }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Include Branch with backend ID
            #@TestID              Fractional Include Branch
            #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import
                                  along with the backendID.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Include Branch with backend ID')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeBranch' : ['dc=com'],
                    'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                  }
                </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'] }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Include Branches
            #@TestID              Fractional Include Branches
            #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be included in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Include Branches')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeBranch' : ['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'] }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Exclude Branch
            #@TestID              Fractional Exclude Branch
            #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be excluded in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Exclude Branch')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeBranch' : ['ou=Departed,ou=People,dc=example,dc=com'],
                    'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                  }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Exclude Branches
            #@TestID              Fractional Exclude Branches
            #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be excluded in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Exclude Branches')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                  { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeBranch' : ['ou=Departed,ou=People,dc=example,dc=com'],
                    'dsBackEnd'       : DIRECTORY_INSTANCE_BE
                  }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Branches Mix
            #@TestID              Fractional Branches Mix
            #@TestPurpose         Verify an import of a LDIF file specifying a mix of include and exclude branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Branches Mix')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'        : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'      : '%s/backends/Exclude.ldif' % remote.data,
                    'dsIncludeBranch' : ['dc=com'],
                    'dsExcludeBranch' : ['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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Include Attribute
            #@TestID              Fractional Include Attribute
            #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be included in the import.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "userRoot" -i dc -l Include.ldif
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Include Attribute')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeAttribute' : ['dc'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Include Attributes
            #@TestID              Fractional Include Attributes
            #@TestPurpose         Verify an import of a LDIF file specifying multiple attributes that should be included in the import.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "userRoot" -i cn -i dc -i ou -i sn -l Include.ldif
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Include Attributes')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeAttribute' : ['dc','cn','ou','sn'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Exclude Attribute
            #@TestID              Fractional Exclude Attribute
            #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be excluded in the import.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -l Example.ldif
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Exclude Attribute')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeAttribute' : ['userpassword'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                    'missingAttributes' : ['userpassword']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Exclude Attributes
            #@TestID              Fractional Exclude Attributes
            #@TestPurpose         Verify an import of a LDIF file specifying multiple attribute that should be excluded in the import.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -e mail -e roomnumber -l Example.ldif
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Exclude Attributes')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeAttribute' : ['userpassword','mail','roomnumber'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                    'missingAttributes' : ['userpassword']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Mix
            #@TestID              Fractional Mix
            #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional attributes and branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Mix')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                    'dsIncludeAttribute' : ['dc','cn','ou','sn'],
                    'dsIncludeBranch'    : ['dc=com','dc=example,dc=com','ou=People,dc=example,dc=com'],
                    'dsExcludeBranch'    : ['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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Include
            #@TestID              Filtered Include
            #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are included in the import.
            #@TestPreamble
            #@TestSteps           ./import-ldif.sh -n "userRoot" -I "objectclass=*" -l Include.ldif
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Include')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeFilter'    : ['objectclass=*'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Exclude
            #@TestID              Filtered Exclude
            #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are excluded in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Exclude')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeFilter'    : ['objectclass=person'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Includes
            #@TestID              Filtered Includes
            #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are included in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Includes')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeFilter'    : ['objectclass=domain','objectclass=organizationalunit'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Excludes
            #@TestID              Filtered Excludes
            #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are excluded in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Excludes')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeFilter'    : ['objectclass=person','objectclass=organizationalunit'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['dc=example,dc=com'],
                    'missingEntries'  : ['ou=People,dc=example,dc=com']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Includes Complex
            #@TestID              Filtered Includes Complex
            #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are included in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Includes Complex')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Include.ldif' % remote.data,
                    'dsIncludeFilter'    : ['|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Filtered Excludes Complex
            #@TestID              Filtered Excludes Complex
            #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are excluded in the import.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Filtered Excludes Complex')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeFilter'    : ['&amp;(objectclass=person)(ou=Departed)'],
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Fractional Filtered Mix
            #@TestID              Fractional Filtered Mix
            #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional and filtered.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Fractional Filtered Mix')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Exclude.ldif' % remote.data,
                    'dsExcludeFilter'    : ['&amp;(objectclass=person)(ou=Departed)'],
                    'dsIncludeBranch'    : ['dc=com'],
                    'dsExcludeAttribute' : ['userpassword']
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Append
            #@TestID              Append
            #@TestPurpose         Verify an import of a LDIF file specifying that the import process should append to the existing database.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Append')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Append.ldif' % remote.data,
                    'dsAppend'           : 'TRUE',
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Append Replace Existing
            #@TestID              Append Replace Existing
            #@TestPurpose         Verify an import of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Append Replace Existing')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Append.ldif' % remote.data,
                    'dsAppend'           : 'TRUE',
                    'dsReplaceExisting'  : 'TRUE',
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Compressed
            #@TestID              Compressed
            #@TestPurpose         Verify an import of a LDIF file specifying the data to import is compressed.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Compressed')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Example.ldif.gz' % remote.data,
                    'dsIsCompressed'     : 'TRUE',
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Encrypted
            #@TestID              Encrypted
            #@TestPurpose         Verify an import of a LDIF file specifying the data to import is encrypted.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Encrypted')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                    'dsIsEncrypted'      : 'TRUE',
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <!-- Known issue -->
                <call function="'checktestRC'">
                  { 'returncode' : 1 ,
                    'expected'   : 0 ,
                    'result'     : 'Encrypted LDIF export is not implemented',
                    'issue'      : '839'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Hashed Signed
            #@TestID              Hashed Signed
            #@TestPurpose         Verify an import 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 Tests
            #@TestName            Backend: Import: Rejects File
            #@TestID              Rejects File
            #@TestPurpose         Verify an import 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="getTestCaseName('Rejects File')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                    'dsRejectFile'       : '%s/rejects.txt' % remote.temp,
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Rejects File Overwrite
            #@TestID              Rejects File Overwrite
            #@TestPurpose         Verify an import 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="getTestCaseName('Rejects File Overwrite')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Example.ldif' % remote.data,
                    'dsRejectFile'       : '%s/rejects.txt' % remote.temp,
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Skip Schema Validation Accept
            #@TestID              Skip Schema Validation Accept
            #@TestPurpose         Verify an import of a LDIF file containing invalided schema is accepted when skip schema validation is specified
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Skip Schema Validation Accept')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'             : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'             : '%s/backends/Schema.ldif' % remote.data,
                    'dsSkipSchemaValidation' : 'TRUE',
                    'dsBackEnd'              : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Skip Schema Validation Reject
            #@TestID              skip schema validation reject
            #@TestPurpose         Verify an import of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <testcase name="getTestCaseName('Skip Schema Validation Reject')">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'ImportLdifWithScript'">
                    { 'location'         : STAF_REMOTE_HOSTNAME,
                    'dsLdifFile'         : '%s/backends/Schema.ldif' % remote.data,
                    'dsBackEnd'          : DIRECTORY_INSTANCE_BE
                    }
                </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']
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Import Tests
            #@TestName            Backend: Import: Error Codes
            #@TestID              Error Codes
            #@TestPurpose         Verify an import fails with an error code.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
            -->
            <!-- Need to know what the error codes are -->
          </sequence>
          <finally>
            <sequence>
              <!-- Test Suite Cleanup -->
              <message>'Finally: Global Backup Cleanup.'</message>
              <try>
                <try>
                  <call function="'common_cleanup'" />
                <catch exception="'STAFException'">
                  <sequence>
                    <message log="1" level="'fatal'">'Cleanup of test suite failed.'</message>
                  </sequence>
                </catch>
                </try>
              <finally>
                <call function="'testSuite_Postamble'"/>
              </finally>
              </try>
            </sequence>
          </finally>
        </try>
        
      </block>