@Test public void testPriority() throws IOException { ConcurrentBoundedWorkUnitList list = new ConcurrentBoundedWorkUnitList(10, new NameComparator(), 1); // Fill container Assert.assertTrue(addFiles(list, "z-1", 10)); Assert.assertEquals(list.getWorkUnits().size(), 10); // Reject because same priority Assert.assertFalse(addFiles(list, "z-2", 5)); // Higher priority, so accept new work units Assert.assertTrue(addFiles(list, "y-1", 5)); Assert.assertEquals(list.getWorkUnits().size(), 5); // Lower priority fits, so accept new work units Assert.assertTrue(addFiles(list, "z-3", 2)); Assert.assertEquals(list.getWorkUnits().size(), 7); // Lower priority fits, so accept new work units Assert.assertTrue(addFiles(list, "z-4", 2)); Assert.assertEquals(list.getWorkUnits().size(), 9); // Higher priority, evict lowest priority Assert.assertTrue(addFiles(list, "y-2", 4)); Assert.assertEquals(list.getWorkUnits().size(), 9); // Highest priority, evict lowest priority Assert.assertTrue(addFiles(list, "x-1", 4)); Assert.assertEquals(list.getWorkUnits().size(), 9); }