Esempio n. 1
0
  @Test
  public void testSize() {
    TaskQueue<Object> taskQueue = new TaskQueue<Object>(10);

    Assert.assertEquals(0, taskQueue.size());

    for (int i = 1; i <= 10; i++) {
      Assert.assertTrue(taskQueue.offer(new Object(), new boolean[1]));
      Assert.assertEquals(i, taskQueue.size());
    }
  }
Esempio n. 2
0
  @Test
  public void testRemove() {
    TaskQueue<Object> taskQueue = new TaskQueue<Object>(10);

    Assert.assertFalse(taskQueue.remove(null));
    Assert.assertFalse(taskQueue.remove(new Object()));

    Object object1 = new Object();
    Object object2 = new Object();
    Object object3 = new Object();

    Assert.assertTrue(taskQueue.offer(object1, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object2, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object3, new boolean[1]));
    Assert.assertEquals(3, taskQueue.size());
    Assert.assertTrue(taskQueue.remove(object2));
    Assert.assertEquals(2, taskQueue.size());
    Assert.assertTrue(taskQueue.remove(object1));
    Assert.assertEquals(1, taskQueue.size());
    Assert.assertTrue(taskQueue.remove(object3));
    Assert.assertEquals(0, taskQueue.size());
  }
Esempio n. 3
0
  @Test
  public void testDrainTo() {
    TaskQueue<Object> taskQueue = new TaskQueue<Object>();

    try {
      taskQueue.drainTo(null);

      Assert.fail();
    } catch (NullPointerException npe) {
    }

    Object object1 = new Object();
    Object object2 = new Object();
    Object object3 = new Object();
    Object object4 = new Object();

    taskQueue = new TaskQueue<Object>();

    Assert.assertTrue(taskQueue.offer(object1, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object2, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object3, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object4, new boolean[1]));

    Set<Object> set = new HashSet<Object>();

    taskQueue.drainTo(set);

    Assert.assertEquals(4, set.size());
    Assert.assertTrue(set.contains(object1));
    Assert.assertTrue(set.contains(object2));
    Assert.assertTrue(set.contains(object3));
    Assert.assertTrue(set.contains(object4));

    object1 = new Object();
    object2 = new Object();
    object3 = new Object();
    object4 = new Object();

    taskQueue = new TaskQueue<Object>();

    Assert.assertTrue(taskQueue.offer(object1, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object2, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object3, new boolean[1]));
    Assert.assertTrue(taskQueue.offer(object4, new boolean[1]));

    List<Object> list =
        new ArrayList<Object>() {

          @Override
          public boolean add(Object e) {
            if (size() >= 2) {
              throw new IllegalStateException();
            }

            return super.add(e);
          }
        };

    try {
      taskQueue.drainTo(list);

      Assert.fail();
    } catch (IllegalStateException ise) {
    }

    Assert.assertEquals(2, list.size());
    Assert.assertSame(object1, list.get(0));
    Assert.assertSame(object2, list.get(1));
    Assert.assertEquals(2, taskQueue.size());
    Assert.assertSame(object3, taskQueue.poll());
    Assert.assertSame(object4, taskQueue.poll());
  }