assertEquals(4, instance.getTotalNumberOfSlots());
assertEquals(4, instance.getNumberOfAvailableSlots());
assertEquals(0, instance.getNumberOfAllocatedSlots());
AllocatedSlot slot1 = instance.allocateSlot(new JobID());
AllocatedSlot slot2 = instance.allocateSlot(new JobID());
AllocatedSlot slot3 = instance.allocateSlot(new JobID());
AllocatedSlot slot4 = instance.allocateSlot(new JobID());
assertNotNull(slot1);
assertNotNull(slot2);
assertNotNull(slot3);
assertNotNull(slot4);
assertEquals(0, instance.getNumberOfAvailableSlots());
assertEquals(4, instance.getNumberOfAllocatedSlots());
assertEquals(6, slot1.getSlotNumber() + slot2.getSlotNumber() +
slot3.getSlotNumber() + slot4.getSlotNumber());
// no more slots
assertNull(instance.allocateSlot(new JobID()));
try {
instance.returnAllocatedSlot(slot2);
fail("instance accepted a non-cancelled slot.");
} catch (IllegalArgumentException e) {
// good