package org.ovirt.engine.core.bll.memory.sdcomparators;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
public class StorageDomainNumberOfVmDisksComparatorTest extends StorageDomainComparatorAbstractTest {
private DiskImage vmDisk1;
private DiskImage vmDisk2;
private DiskImage vmDisk3;
@Before
@Override
public void setUp() {
super.setUp();
vmDisk1 = new DiskImage();
vmDisk2 = new DiskImage();
vmDisk3 = new DiskImage();
}
@Test
public void compareWhenStorageDomainsHaveNoDisks() {
initComparator();
assertEqualsTo(storageDomain1, storageDomain2);
}
@Test
public void compareWhenSizesAreEqual() {
attachVmDisksToStorageDomain(storageDomain1, vmDisk1);
attachVmDisksToStorageDomain(storageDomain2, vmDisk2);
initComparator(vmDisk1, vmDisk2);
assertEqualsTo(storageDomain1, storageDomain2);
}
@Test
public void compareWhenSizesAreNotEqual() {
attachVmDisksToStorageDomain(storageDomain1, vmDisk1);
attachVmDisksToStorageDomain(storageDomain2, vmDisk2, vmDisk3);
initComparator(vmDisk1, vmDisk2, vmDisk3);
assertBiggerThan(storageDomain1, storageDomain2);
assertSmallerThan(storageDomain2, storageDomain1);
}
private void attachVmDisksToStorageDomain(StorageDomain storageDomain, DiskImage... vmDisks) {
for (DiskImage diskImage : vmDisks) {
diskImage.setStorageIds(new ArrayList<>(Collections.singletonList(storageDomain.getId())));
}
}
private void initComparator(DiskImage... vmDisks) {
comparator = new StorageDomainNumberOfVmDisksComparator(Arrays.asList(vmDisks));
}
}