package org.ovirt.engine.core.common.businessentities.storage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.lang.reflect.Modifier;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
import org.reflections.Reflections;
public class DiskStorageTypeTest {
@Test
public void forClass() throws Exception {
Reflections reflections = new Reflections(getClass().getPackage().getName());
Set<Class<? extends Disk>> diskClasses = reflections.getSubTypesOf(Disk.class);
Set<Class<? extends Disk>> concreteDiskClasses = new HashSet<>();
Set<DiskStorageType> diskStorageTypes = EnumSet.noneOf(DiskStorageType.class);
for (Class<? extends Disk> diskClass : diskClasses) {
if (!Modifier.isAbstract(diskClass.getModifiers())) {
DiskStorageType diskStorageType = DiskStorageType.forClass(diskClass);
assertNotNull("No type for " + diskClass, diskStorageType);
diskStorageTypes.add(diskStorageType);
concreteDiskClasses.add(diskClass);
}
}
assertEquals(concreteDiskClasses.size(), diskStorageTypes.size());
}
}