Пример #1
0
  @Test
  public void testCreateQueueHashCodeEquals() {
    try {
      ClosableBlockingQueue<String> queue1 = new ClosableBlockingQueue<>();
      ClosableBlockingQueue<String> queue2 = new ClosableBlockingQueue<>(22);

      assertTrue(queue1.isOpen());
      assertTrue(queue2.isOpen());
      assertTrue(queue1.isEmpty());
      assertTrue(queue2.isEmpty());
      assertEquals(0, queue1.size());
      assertEquals(0, queue2.size());

      assertTrue(queue1.hashCode() == queue2.hashCode());
      //noinspection EqualsWithItself
      assertTrue(queue1.equals(queue1));
      //noinspection EqualsWithItself
      assertTrue(queue2.equals(queue2));
      assertTrue(queue1.equals(queue2));

      assertNotNull(queue1.toString());
      assertNotNull(queue2.toString());

      List<String> elements = new ArrayList<>();
      elements.add("a");
      elements.add("b");
      elements.add("c");

      ClosableBlockingQueue<String> queue3 = new ClosableBlockingQueue<>(elements);
      ClosableBlockingQueue<String> queue4 = new ClosableBlockingQueue<>(asList("a", "b", "c"));

      assertTrue(queue3.isOpen());
      assertTrue(queue4.isOpen());
      assertFalse(queue3.isEmpty());
      assertFalse(queue4.isEmpty());
      assertEquals(3, queue3.size());
      assertEquals(3, queue4.size());

      assertTrue(queue3.hashCode() == queue4.hashCode());
      //noinspection EqualsWithItself
      assertTrue(queue3.equals(queue3));
      //noinspection EqualsWithItself
      assertTrue(queue4.equals(queue4));
      assertTrue(queue3.equals(queue4));

      assertNotNull(queue3.toString());
      assertNotNull(queue4.toString());
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
Пример #2
0
  @Test
  public void testCloseNonEmptyQueue() {
    try {
      ClosableBlockingQueue<Integer> queue = new ClosableBlockingQueue<>(asList(1, 2, 3));
      assertTrue(queue.isOpen());

      assertFalse(queue.close());
      assertFalse(queue.close());

      queue.poll();

      assertFalse(queue.close());
      assertFalse(queue.close());

      queue.pollBatch();

      assertTrue(queue.close());
      assertFalse(queue.isOpen());

      assertFalse(queue.addIfOpen(42));
      assertTrue(queue.isEmpty());

      try {
        queue.add(99);
        fail("should cause an exception");
      } catch (IllegalStateException ignored) {
        // expected
      }
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
Пример #3
0
  @Test
  public void testCloseEmptyQueue() {
    try {
      ClosableBlockingQueue<String> queue = new ClosableBlockingQueue<>();
      assertTrue(queue.isOpen());
      assertTrue(queue.close());
      assertFalse(queue.isOpen());

      assertFalse(queue.addIfOpen("element"));
      assertTrue(queue.isEmpty());

      try {
        queue.add("some element");
        fail("should cause an exception");
      } catch (IllegalStateException ignored) {
        // expected
      }
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }