From 9e9b942291d9cc024bc693118838d9d4c73cf4db Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 09 Oct 2014 11:33:51 +0000
Subject: [PATCH] Chasing random test.

---
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestBackupAndRestore.java |  142 +++++++++++++++++------------------------------
 opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TasksTestCase.java        |   15 ++--
 2 files changed, 60 insertions(+), 97 deletions(-)

diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TasksTestCase.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TasksTestCase.java
index ea21c42..35b1775 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TasksTestCase.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TasksTestCase.java
@@ -28,7 +28,6 @@
 
 import java.util.Set;
 
-import org.assertj.core.api.SoftAssertions;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.server.DirectoryServerTestCase;
@@ -92,7 +91,8 @@
     }
     while (completionTime == null && timedOut);
 
-    assertNotNull(completionTime, "The task had not completed after " + timeout + " seconds.");
+    assertNotNull(completionTime, "The task had not completed after " + timeout + " seconds.\n"
+        + "resultEntry=[" + resultEntry + "]");
 
     // Check that the task state is as expected.
     String stateString = parseAttribute(resultEntry, ATTR_TASK_STATE).asString();
@@ -102,11 +102,12 @@
 
     // Check that the task contains some log messages.
     Set<String> logMessages = parseAttribute(resultEntry, ATTR_TASK_LOG_MESSAGES).asSetOfString();
-    final String msg = "No log messages were written to the task entry on a failed task";
-    SoftAssertions softly = new SoftAssertions();
-    softly.assertThat(taskState).as(msg).isNotEqualTo(TaskState.COMPLETED_SUCCESSFULLY);
-    softly.assertThat(logMessages).as(msg).isNotEmpty();
-    softly.assertAll();
+    if (taskState != TaskState.COMPLETED_SUCCESSFULLY && logMessages.size() == 0)
+    {
+      fail("No log messages were written to the task entry on a failed task.\n"
+          + "taskState=" + taskState
+          + "logMessages size=" + logMessages.size() + " and content=[" + logMessages + "]");
+    }
   }
 
   private AttributeParser parseAttribute(Entry resultEntry, String attrName)
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestBackupAndRestore.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestBackupAndRestore.java
index bd534c7..bc67726 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestBackupAndRestore.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tasks/TestBackupAndRestore.java
@@ -27,6 +27,8 @@
 package org.opends.server.tasks;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.UUID;
 
 import org.opends.server.TestCaseUtils;
@@ -72,149 +74,109 @@
     return new Object[][] {
          {
               // A valid backup task.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
-                   "ds-task-backup-all: TRUE"
-              ),
+              TestCaseUtils.makeEntry(backupTask(
+                  "ds-task-backup-all: TRUE")),
               TaskState.COMPLETED_SUCCESSFULLY
          },
          {
               // Incompatible settings of backup-directory-path and
               // incremental-base-id.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
-                   "ds-task-backup-incremental: TRUE",
-                   "ds-task-backup-incremental-base-id: monday",
-                   "ds-task-backup-all: TRUE"),
+              TestCaseUtils.makeEntry(backupTask(
+                  "ds-task-backup-all: TRUE",
+                  "ds-task-backup-incremental: TRUE",
+                  "ds-task-backup-incremental-base-id: monday")),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Incompatible settings for backend-id and backup-all.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
-                   "ds-task-backup-backend-id: example",
-                   "ds-task-backup-all: TRUE"),
+              TestCaseUtils.makeEntry(backupTask(
+                  "ds-task-backup-all: TRUE",
+                  "ds-task-backup-backend-id: example")),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Neither of backend-id or backup-all specified.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak"),
+              TestCaseUtils.makeEntry(backupTask()),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Incompatible settings for incremental and incremental-base-id.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
+              TestCaseUtils.makeEntry(backupTask(
                    "ds-task-backup-all: TRUE",
-                   "ds-task-backup-incremental-base-id: monday",
-                   "ds-task-backup-incremental: FALSE"),
+                   "ds-task-backup-incremental: FALSE",
+                   "ds-task-backup-incremental-base-id: monday")),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Incompatible settings for hash and sign-hash.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
+              TestCaseUtils.makeEntry(backupTask(
                    "ds-task-backup-all: TRUE",
                    "ds-task-backup-hash: FALSE",
-                   "ds-task-backup-sign-hash: TRUE"
-                   ),
+                   "ds-task-backup-sign-hash: TRUE")),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Specified backend does not support backup.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-backup",
-                   "ds-task-class-name: org.opends.server.tasks.BackupTask",
-                   "ds-backup-directory-path: bak",
-                   "ds-task-backup-backend-id: monitor"),
+              TestCaseUtils.makeEntry(backupTask(
+                   "ds-task-backup-backend-id: monitor")),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // A valid restore task.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-restore",
-                   "ds-task-class-name: org.opends.server.tasks.RestoreTask",
-                   "ds-backup-directory-path: bak" + File.separator + "userRoot"
-              ),
+              TestCaseUtils.makeEntry(restoreTask(
+                   "ds-backup-directory-path: bak" + File.separator + "userRoot")),
               TaskState.COMPLETED_SUCCESSFULLY
          },
          {
               // Non-existent restore directory-path.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-restore",
-                   "ds-task-class-name: org.opends.server.tasks.RestoreTask",
+              TestCaseUtils.makeEntry(restoreTask(
                    "ds-backup-directory-path: missing"
-              ),
+              )),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Invalid restore directory-path.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-restore",
-                   "ds-task-class-name: org.opends.server.tasks.RestoreTask",
+              TestCaseUtils.makeEntry(restoreTask(
                    "ds-backup-directory-path: bak"
-              ),
+              )),
               TaskState.STOPPED_BY_ERROR
          },
          {
               // Invalid restore backup-id.
-              TestCaseUtils.makeEntry(
-                   "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
-                   "objectclass: top",
-                   "objectclass: ds-task",
-                   "objectclass: ds-task-restore",
-                   "ds-task-class-name: org.opends.server.tasks.RestoreTask",
+              TestCaseUtils.makeEntry(restoreTask(
                    "ds-backup-directory-path: bak" + File.separator + "userRoot",
                    "ds-backup-id: monday"
-              ),
+              )),
               TaskState.STOPPED_BY_ERROR
          },
     };
   }
 
+  private String[] backupTask(String... additionalLdif)
+  {
+    final ArrayList<String> l = new ArrayList<String>(Arrays.asList(
+        "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
+        "objectclass: top",
+        "objectclass: ds-task",
+        "objectclass: ds-task-backup",
+        "ds-task-class-name: org.opends.server.tasks.BackupTask",
+        "ds-backup-directory-path: bak"));
+    l.addAll(Arrays.asList(additionalLdif));
+    return l.toArray(new String[0]);
+  }
+
+  private String[] restoreTask(String... additionalLdif)
+  {
+    final ArrayList<String> l = new ArrayList<String>(Arrays.asList(
+        "dn: ds-task-id=" + UUID.randomUUID() + ",cn=Scheduled Tasks,cn=Tasks",
+        "objectclass: top",
+        "objectclass: ds-task",
+        "objectclass: ds-task-restore",
+        "ds-task-class-name: org.opends.server.tasks.RestoreTask"));
+    l.addAll(Arrays.asList(additionalLdif));
+    return l.toArray(new String[0]);
+  }
+
   /**
    * Test that various backup and restore task definitions complete with the
    * expected state.

--
Gitblit v1.10.0