package org.ovirt.engine.core.bll; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.core.common.businessentities.VmDevice; import org.ovirt.engine.core.common.businessentities.VmDeviceGeneralType; import org.ovirt.engine.core.common.businessentities.VmDeviceId; import org.ovirt.engine.core.common.businessentities.VmWatchdog; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.utils.VmDeviceType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.VmDeviceDao; @RunWith(MockitoJUnitRunner.class) public class GetWatchdogQueryTest extends AbstractQueryTest<IdQueryParameters, GetWatchdogQuery<IdQueryParameters>> { private static final Guid TEST_VM_ID = new Guid("ee655a4d-effc-4aab-be2b-2f80ff40cd1c"); @Mock VmDeviceDao vmDeviceDao; @Override public void setUp() throws Exception { super.setUp(); when(getQueryParameters().getId()).thenReturn(TEST_VM_ID); } @Test public void executeQueryCommandWithNull() { getQuery().executeQueryCommand(); assertTrue(((List<?>) getQuery().getQueryReturnValue().getReturnValue()).isEmpty()); } @Test public void executeQueryCommandWithWatchdog() { Map<String, Object> watchdogSpecParams = new HashMap<>(); watchdogSpecParams.put("model", "i6300esb"); watchdogSpecParams.put("action", "reset"); VmDevice vmDevice = new VmDevice(new VmDeviceId(new Guid("6f86b8a4-e721-4149-b2df-056eb621b16a"), TEST_VM_ID), VmDeviceGeneralType.WATCHDOG, VmDeviceType.WATCHDOG.getName(), "", watchdogSpecParams, true, true, true, "", null, null, null); when(vmDeviceDao.getVmDeviceByVmIdAndType(TEST_VM_ID, VmDeviceGeneralType.WATCHDOG)) .thenReturn(Collections.singletonList(vmDevice)); getQuery().executeQueryCommand(); List<VmWatchdog> result = getQuery().getQueryReturnValue().getReturnValue(); assertNotNull(result); assertFalse(result.isEmpty()); VmWatchdog watchdog = result.get(0); assertEquals("reset", watchdog.getAction().name().toLowerCase()); assertEquals("i6300esb", watchdog.getModel().name().toLowerCase()); } }