package org.ovirt.engine.core.bll.hostdev; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.Map; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.Entities; import org.ovirt.engine.core.common.businessentities.HostDevice; public class RefreshHostDevicesCommandTest { @Test public void testFilterOrphanedHostDevices() throws Exception { Map<String, HostDevice> fetchedDevices = Entities.entitiesByName(Arrays.asList( new HostDevice() {{ setDeviceName("computer"); setParentDeviceName("computer"); }}, new HostDevice() {{ setDeviceName("good"); setParentDeviceName("computer"); }}, new HostDevice() {{ setDeviceName("child_of_good"); setParentDeviceName("good"); }}, new HostDevice() {{ setDeviceName("orphan"); setParentDeviceName("non_existing"); }}, new HostDevice() {{ setDeviceName("child_of_orphan"); setParentDeviceName("orphan"); }}, new HostDevice() {{ setDeviceName("bad"); setParentDeviceName(""); }}, new HostDevice() {{ setDeviceName("child_of_bad"); setParentDeviceName("bad"); }}, new HostDevice() {{ setDeviceName("worse"); setParentDeviceName(null); }}, new HostDevice() {{ setDeviceName("child_of_worse"); setParentDeviceName("worse"); }} )); Map<String, HostDevice> filteredDevices = RefreshHostDevicesCommand.filterOrphanedDevices(fetchedDevices); Map<String, HostDevice> expectedDevices = Entities.entitiesByName(Arrays.asList( new HostDevice() {{ setDeviceName("computer"); setParentDeviceName("computer"); }}, new HostDevice() {{ setDeviceName("good"); setParentDeviceName("computer"); }}, new HostDevice() {{ setDeviceName("child_of_good"); setParentDeviceName("good"); }} )); assertEquals(expectedDevices, filteredDevices); } }