summaryrefslogtreecommitdiff
path: root/same/src/test/java/com/orbekk/util/DelayedOperationTest.java
blob: b15830f4db1e12cf6be0de3c3022d84e4957dd89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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());
	}
}