summaryrefslogtreecommitdiff
path: root/same/src/test/java/com/orbekk/util/DelayedOperationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'same/src/test/java/com/orbekk/util/DelayedOperationTest.java')
-rw-r--r--same/src/test/java/com/orbekk/util/DelayedOperationTest.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/same/src/test/java/com/orbekk/util/DelayedOperationTest.java b/same/src/test/java/com/orbekk/util/DelayedOperationTest.java
new file mode 100644
index 0000000..b15830f
--- /dev/null
+++ b/same/src/test/java/com/orbekk/util/DelayedOperationTest.java
@@ -0,0 +1,35 @@
+package com.orbekk.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class DelayedOperationTest {
+ @Test public void initialOperationStatus() {
+ DelayedOperation<String> operation = new DelayedOperation<String>("NotFinished");
+ assertFalse(operation.isDone());
+ }
+
+ @Test public void completedOperationReturns() {
+ DelayedOperation<String> operation = new DelayedOperation<String>("Test");
+ operation.complete(DelayedOperation.Status.createOk());
+ assertTrue(operation.isDone());
+ assertEquals(DelayedOperation.Status.createOk(), operation.getStatus());
+ }
+
+ @Test public void concurrentTest() throws Exception {
+ final DelayedOperation<String> operation =
+ new DelayedOperation<String>("ConcurrentTest");
+
+ Thread t = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ operation.waitFor();
+ }
+ });
+ t.start();
+ operation.complete(DelayedOperation.Status.createError("Fail."));
+ t.join();
+ assertTrue(operation.isDone());
+ }
+}