package org.multiverse.commitbarriers; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.multiverse.TestUtils.clearCurrentThreadInterruptedStatus; import static org.multiverse.api.TxnThreadLocal.clearThreadLocalTxn; public class CountDownCommitBarrier_constructorTest { @Before public void setUp() { clearThreadLocalTxn(); clearCurrentThreadInterruptedStatus(); } @After public void tearDown() { clearCurrentThreadInterruptedStatus(); } @Test(expected = IllegalArgumentException.class) public void whenNegativeParties_thenIllegalArgumentException() { new CountDownCommitBarrier(-1); } @Test public void whenZeroParties_thenBarrierCommitted() { CountDownCommitBarrier barrier = new CountDownCommitBarrier(0); assertTrue(barrier.isCommitted()); assertEquals(0, barrier.getParties()); assertEquals(0, barrier.getNumberWaiting()); } @Test public void whenPositiveParties() { CountDownCommitBarrier barrier = new CountDownCommitBarrier(10); assertTrue(barrier.isClosed()); assertEquals(10, barrier.getParties()); assertEquals(0, barrier.getNumberWaiting()); } }