package org.drugis.common.threading.activity;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.drugis.common.threading.Task;
import org.junit.Test;
public class JoinTransitionTest {
@Test
public void testConstruct() {
List<MockTask> source = new ArrayList<MockTask>(3);
source.add(new MockTask());
source.add(new MockTask());
source.add(new MockTask());
Task target = new MockTask();
JoinTransition trans = new JoinTransition(source, target);
for (MockTask t : source) {
t.start();
}
assertEquals(source, trans.getSources());
assertEquals(Collections.singletonList(target), trans.getTargets());
assertFalse(trans.isReady());
source.get(0).finish();
assertFalse(trans.isReady());
source.get(2).finish();
assertFalse(trans.isReady());
source.get(1).finish();
assertTrue(trans.isReady());
assertEquals(Collections.singletonList(target), trans.transition());
}
}