@Test
  public void testResize() {
    DiskImage oldDisk = createDiskImage();
    when(diskDao.get(diskImageGuid)).thenReturn(oldDisk);

    UpdateVmDiskParameters parameters = createParameters();
    ((DiskImage) parameters.getDiskInfo()).setSize(oldDisk.getSize() * 2);
    initializeCommand(parameters);

    assertTrue(command.validateCanResizeDisk());
  }
  @Test
  public void testFaultyResize() {
    when(diskDao.get(diskImageGuid)).thenReturn(createDiskImage());

    UpdateVmDiskParameters parameters = createParameters();
    ((DiskImage) parameters.getDiskInfo()).setSize(parameters.getDiskInfo().getSize() / 2);
    initializeCommand(parameters);

    assertFalse(command.validateCanResizeDisk());
    CanDoActionTestUtils.assertCanDoActionMessages(
        "wrong failure",
        command,
        EngineMessage.ACTION_TYPE_FAILED_REQUESTED_DISK_SIZE_IS_TOO_SMALL);
  }
  @Test
  public void testFailedRoDiskResize() {
    StorageDomain sd = new StorageDomain();
    sd.setAvailableDiskSize(Integer.MAX_VALUE);
    sd.setStatus(StorageDomainStatus.Active);
    when(storageDomainDao.getForStoragePool(any(Guid.class), any(Guid.class))).thenReturn(sd);

    UpdateVmDiskParameters parameters = createParameters();
    ((DiskImage) parameters.getDiskInfo()).setSize(parameters.getDiskInfo().getSize() * 2);
    initializeCommand(parameters);

    DiskImage oldDisk = createDiskImage();
    doReturn(oldDisk).when(command).getOldDisk();

    VmDevice vmDevice = stubVmDevice(diskImageGuid, vmId);
    vmDevice.setIsReadOnly(true);

    assertFalse(command.validateCanResizeDisk());
    CanDoActionTestUtils.assertCanDoActionMessages(
        "wrong failure", command, EngineMessage.ACTION_TYPE_FAILED_CANNOT_RESIZE_READ_ONLY_DISK);
  }