From ee0fbff002e17a56aca09cb8dc7da0f4fe20ad6e Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Tue, 31 Jul 2007 21:38:45 +0000
Subject: [PATCH]
---
opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestImportAndExport.java | 221 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 155 insertions(+), 66 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestImportAndExport.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestImportAndExport.java
index 217b565..ccca0f0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestImportAndExport.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestImportAndExport.java
@@ -32,10 +32,13 @@
import org.testng.annotations.AfterClass;
import org.testng.annotations.DataProvider;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.AddOperation;
import org.opends.server.TestCaseUtils;
+import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.api.TestTaskListener;
import org.opends.server.types.Entry;
import org.opends.server.types.ObjectClass;
+import org.opends.server.types.ResultCode;
import org.opends.server.backends.task.TaskState;
import static org.testng.Assert.*;
@@ -136,7 +139,7 @@
public Object[][] createData() throws Exception
{
return new Object[][] {
- // A fairly simple, valid import task.
+ // A fairly simple, valid import task using backend ID.
{
TestCaseUtils.makeEntry(
"dn: ds-task-id=" + UUID.randomUUID() +
@@ -155,6 +158,25 @@
),
TaskState.COMPLETED_SUCCESSFULLY
},
+ // A fairly simple, valid import task using include base DN.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-include-branch: dc=example,dc=com",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-reject-file: " + rejectFile.getPath(),
+ "ds-task-import-overwrite-rejects: TRUE",
+ "ds-task-import-exclude-attribute: description",
+ "ds-task-import-exclude-filter: (st=CA)",
+ "ds-task-import-exclude-branch: o=exclude,dc=example,dc=com"
+ ),
+ TaskState.COMPLETED_SUCCESSFULLY
+ },
// A complex, valid import task.
{
TestCaseUtils.makeEntry(
@@ -182,7 +204,7 @@
),
TaskState.COMPLETED_SUCCESSFULLY
},
- // LDIF file does not exist.
+ // A partial, valid import task.
{
TestCaseUtils.makeEntry(
"dn: ds-task-id=" + UUID.randomUUID() +
@@ -191,40 +213,15 @@
"objectclass: ds-task",
"objectclass: ds-task-import",
"ds-task-class-name: org.opends.server.tasks.ImportTask",
- "ds-task-import-ldif-file: doesnotexist",
- "ds-task-import-backend-id: userRoot"
- ),
- TaskState.STOPPED_BY_ERROR
- },
- // Invalid exclude filter.
- {
- TestCaseUtils.makeEntry(
- "dn: ds-task-id=" + UUID.randomUUID() +
- ",cn=Scheduled Tasks,cn=Tasks",
- "objectclass: top",
- "objectclass: ds-task",
- "objectclass: ds-task-import",
- "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-include-branch: ou=people,dc=example,dc=com",
"ds-task-import-ldif-file: " + ldifFile.getPath(),
- "ds-task-import-backend-id: userRoot",
- "ds-task-import-exclude-filter: ()"
+ "ds-task-import-reject-file: " + rejectFile.getPath(),
+ "ds-task-import-overwrite-rejects: TRUE",
+ "ds-task-import-exclude-attribute: description",
+ "ds-task-import-exclude-filter: (st=CA)",
+ "ds-task-import-exclude-branch: o=exclude,dc=example,dc=com"
),
- TaskState.STOPPED_BY_ERROR
- },
- // Invalid include filter.
- {
- TestCaseUtils.makeEntry(
- "dn: ds-task-id=" + UUID.randomUUID() +
- ",cn=Scheduled Tasks,cn=Tasks",
- "objectclass: top",
- "objectclass: ds-task",
- "objectclass: ds-task-import",
- "ds-task-class-name: org.opends.server.tasks.ImportTask",
- "ds-task-import-ldif-file: " + ldifFile.getPath(),
- "ds-task-import-backend-id: userRoot",
- "ds-task-import-include-filter: ()"
- ),
- TaskState.STOPPED_BY_ERROR
+ TaskState.COMPLETED_SUCCESSFULLY
},
// Backend id does not exist.
{
@@ -235,37 +232,8 @@
"objectclass: ds-task",
"objectclass: ds-task-import",
"ds-task-class-name: org.opends.server.tasks.ImportTask",
- "ds-task-import-ldif-file: " + ldifFile.getPath(),
- "ds-task-import-backend-id: doesnotexist"
- ),
- TaskState.STOPPED_BY_ERROR
- },
- // Backend does not support import.
- {
- TestCaseUtils.makeEntry(
- "dn: ds-task-id=" + UUID.randomUUID() +
- ",cn=Scheduled Tasks,cn=Tasks",
- "objectclass: top",
- "objectclass: ds-task",
- "objectclass: ds-task-import",
- "ds-task-class-name: org.opends.server.tasks.ImportTask",
- "ds-task-import-ldif-file: " + ldifFile.getPath(),
- "ds-task-import-backend-id: monitor"
- ),
- TaskState.STOPPED_BY_ERROR
- },
- // Backend does not handle include branch.
- {
- TestCaseUtils.makeEntry(
- "dn: ds-task-id=" + UUID.randomUUID() +
- ",cn=Scheduled Tasks,cn=Tasks",
- "objectclass: top",
- "objectclass: ds-task",
- "objectclass: ds-task-import",
- "ds-task-class-name: org.opends.server.tasks.ImportTask",
- "ds-task-import-ldif-file: " + ldifFile.getPath(),
- "ds-task-import-backend-id: userRoot",
- "ds-task-import-include-branch: dc=opends,dc=org"
+ "ds-task-import-ldif-file: doesnotexist",
+ "ds-task-import-backend-id: userRoot"
),
TaskState.STOPPED_BY_ERROR
},
@@ -289,12 +257,111 @@
}
/**
+ * Import and export tasks bad test data provider.
+ *
+ * @return The array of tasks test data. The first column is a task entry
+ * and the second column is the expected completed task state.
+ */
+ @DataProvider(name = "badimportexport")
+ public Object[][] createBadData() throws Exception
+ {
+ return new Object[][] {
+ // Invalid exclude filter.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-backend-id: userRoot",
+ "ds-task-import-exclude-filter: ()"
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ },
+ // Invalid include filter.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-backend-id: userRoot",
+ "ds-task-import-include-filter: ()"
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ },
+ // Backend id does not exist.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-backend-id: doesnotexist"
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ },
+ // Backend does not support import.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-backend-id: monitor"
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ },
+ // Backend does not handle include branch.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath(),
+ "ds-task-import-backend-id: userRoot",
+ "ds-task-import-include-branch: dc=opends,dc=org"
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ },
+ // Not specifying a destination.
+ {
+ TestCaseUtils.makeEntry(
+ "dn: ds-task-id=" + UUID.randomUUID() +
+ ",cn=Scheduled Tasks,cn=Tasks",
+ "objectclass: top",
+ "objectclass: ds-task",
+ "objectclass: ds-task-import",
+ "ds-task-class-name: org.opends.server.tasks.ImportTask",
+ "ds-task-import-ldif-file: " + ldifFile.getPath()
+ ),
+ ResultCode.UNWILLING_TO_PERFORM
+ }
+ };
+ }
+
+ /**
* Test that various import and export task definitions complete with the
* expected state.
* @param taskEntry The task entry.
* @param expectedState The expected completion state of the task.
*/
- @Test(enabled = false, dataProvider = "importexport", groups = "slow")
+ @Test(dataProvider = "importexport", groups = "slow")
public void testImportExport(Entry taskEntry, TaskState expectedState)
throws Exception
{
@@ -329,4 +396,26 @@
}
}
+ /**
+ * Add a task definition and check that it completes with the expected state.
+ * @param taskEntry The task entry.
+ * @param resultCode The expected result code of the task add.
+ * @throws Exception If the test fails.
+ */
+ @Test(dataProvider = "badimportexport")
+ public void testBadTask(Entry taskEntry, ResultCode resultCode)
+ throws Exception
+ {
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
+
+ // Add the task.
+ AddOperation addOperation =
+ connection.processAdd(taskEntry.getDN(),
+ taskEntry.getObjectClasses(),
+ taskEntry.getUserAttributes(),
+ taskEntry.getOperationalAttributes());
+ assertEquals(addOperation.getResultCode(), resultCode);
+ }
+
}
--
Gitblit v1.10.0