Пример #1
0
  @Test
  public void testGetBatchBlocking() {
    try {
      ClosableBlockingQueue<String> queue = new ClosableBlockingQueue<>();

      assertEquals(emptyList(), queue.getBatchBlocking(1));
      assertEquals(emptyList(), queue.getBatchBlocking(3));
      assertEquals(emptyList(), queue.getBatchBlocking(2));

      queue.add("a");
      queue.add("b");

      assertEquals(asList("a", "b"), queue.getBatchBlocking(900000009));

      queue.add("c");
      queue.add("d");

      assertEquals(asList("c", "d"), queue.getBatchBlocking());

      assertEquals(emptyList(), queue.getBatchBlocking(2));

      queue.add("e");

      assertEquals(singletonList("e"), queue.getBatchBlocking(0));

      queue.add("f");

      assertEquals(singletonList("f"), queue.getBatchBlocking(1000000000));

      assertEquals(0, queue.size());

      assertEquals(emptyList(), queue.getBatchBlocking(1));
      assertEquals(emptyList(), queue.getBatchBlocking(3));
      assertEquals(emptyList(), queue.getBatchBlocking(2));

      assertTrue(queue.close());

      try {
        queue.getBatchBlocking();
        fail("should cause an exception");
      } catch (IllegalStateException ignored) {
        // expected
      }

      try {
        queue.getBatchBlocking(1000000000L);
        fail("should cause an exception");
      } catch (IllegalStateException ignored) {
        // expected
      }
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }