package org.dcache.services.info.base;
import org.junit.Before;
import org.junit.Test;
import java.util.Queue;
import static org.junit.Assert.*;
public class QueuingStateUpdateManagerTests {
QueuingStateUpdateManager _sum;
@Before
public void setUp()
{
_sum = new QueuingStateUpdateManager();
}
@Test
public void testEmptyQueue() {
assertEquals( "Number of pendingUpdates is wrong.", 0, _sum.countPendingUpdates());
assertTrue( "Queue is not empty", _sum.getQueue().isEmpty());
}
@Test
public void testAddSingleUpdate() {
StateUpdate update = new StateUpdate();
_sum.enqueueUpdate( update);
assertEquals( "Number of pendingUpdates is wrong.", 1, _sum.countPendingUpdates());
Queue<StateUpdate> queuedUpdates = _sum.getQueue();
assertFalse( "Queue is empty", queuedUpdates.isEmpty());
assertEquals( "Queue has wrong number of StateUpdates", 1, queuedUpdates.size());
assertSame( "Queue has wrong StateUpdate as first item", update, queuedUpdates.peek());
}
@Test
public void testAddTwoUpdates() {
StateUpdate update1 = new StateUpdate();
StateUpdate update2 = new StateUpdate();
_sum.enqueueUpdate( update1);
_sum.enqueueUpdate( update2);
assertEquals( "Number of pendingUpdates is wrong.", 2, _sum.countPendingUpdates());
Queue<StateUpdate> queuedUpdates = _sum.getQueue();
assertFalse( "Queue is empty", queuedUpdates.isEmpty());
assertEquals( "Queue has wrong number of StateUpdates", 2, queuedUpdates.size());
StateUpdate item = queuedUpdates.poll();
assertSame( "Queue has wrong StateUpdate as first item", update1, item);
item = queuedUpdates.poll();
assertSame( "Queue has wrong StateUpdate as first item", update2, item);
}
}