@Test
 public void testIscsiLunCanBeAdded() {
   LunDisk disk = createISCSILunDisk();
   AddDiskParameters parameters = createParameters();
   parameters.setDiskInfo(disk);
   initializeCommand(Guid.newGuid(), parameters);
   when(diskLunMapDao.getDiskIdByLunId(disk.getLun().getLUNId())).thenReturn(null);
   assertTrue(
       "checkIfLunDiskCanBeAdded() failed for valid iscsi lun",
       command.checkIfLunDiskCanBeAdded(spyDiskValidator(disk)));
 }
  @Test
  public void testAddingPCILunExceedsSlotLimit() {
    mockInterfaceList();
    LunDisk disk = createISCSILunDisk();
    disk.setDiskInterface(DiskInterface.VirtIO);
    AddDiskParameters parameters = createParameters();
    parameters.setDiskInfo(disk);
    initializeCommand(Guid.newGuid(), parameters);
    when(diskLunMapDao.getDiskIdByLunId(disk.getLun().getLUNId())).thenReturn(null);
    VM vm = mockVm();
    mockMaxPciSlots();

    // use maximum slots for PCI. canDo expected to succeed.
    fillDiskMap(disk, vm, MAX_PCI_SLOTS - 2);
    CanDoActionTestUtils.runAndAssertCanDoActionSuccess(command);

    vm.getDiskMap().put(Guid.newGuid(), disk);
    CanDoActionTestUtils.runAndAssertCanDoActionFailure(
        command, EngineMessage.ACTION_TYPE_FAILED_EXCEEDED_MAX_PCI_SLOTS);
  }