package org.ovirt.engine.api.restapi.resource;
import java.util.HashMap;
import org.junit.Test;
import org.ovirt.engine.api.model.Hook;
import org.ovirt.engine.api.model.Hooks;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendHostHooksResourceTest extends AbstractBackendResourceTest<Hook, HashMap<String, HashMap<String, HashMap<String, String>>>> {
BackendHostHooksResource resource = new BackendHostHooksResource(GUIDS[0].toString());
static final String ON_VM_START_EVENT = "on_vm_start_event";
static final String ON_VM_STOP_EVENT = "on_vm_stop_event";
static final String NOTIFY_ADMIN_HOOK = "notify_admin_hook";
static final String SPECIAL_LOG_HOOK = "special_log_hook";
static final String RELEASE_RESOURCES_HOOK = "release_resources_hook";
static final String MD5 = "md5";
static final String MD5_1 = "aaa";
static final String MD5_2 = "bbb";
static final String MD5_3 = "ccc";
@Override
protected HashMap<String, HashMap<String, HashMap<String, String>>> getEntity(int index) {
HashMap<String, HashMap<String, HashMap<String, String>>> events = new HashMap<>();
events.put(ON_VM_START_EVENT, new HashMap<>());
events.put(ON_VM_STOP_EVENT, new HashMap<>());
events.get(ON_VM_START_EVENT).put(NOTIFY_ADMIN_HOOK, new HashMap<>());
events.get(ON_VM_START_EVENT).put(SPECIAL_LOG_HOOK, new HashMap<>());
events.get(ON_VM_STOP_EVENT).put(SPECIAL_LOG_HOOK, new HashMap<>());
events.get(ON_VM_STOP_EVENT).put(RELEASE_RESOURCES_HOOK, new HashMap<>());
events.get(ON_VM_START_EVENT).get(NOTIFY_ADMIN_HOOK).put(MD5, MD5_1);
events.get(ON_VM_START_EVENT).get(SPECIAL_LOG_HOOK).put(MD5, MD5_2);
events.get(ON_VM_STOP_EVENT).get(SPECIAL_LOG_HOOK).put(MD5, MD5_2);
events.get(ON_VM_STOP_EVENT).get(RELEASE_RESOURCES_HOOK).put(MD5, MD5_3);
return events;
}
@Override
protected void init() {
resource.setMappingLocator(mapperLocator);
resource.setMessageBundle(messageBundle);
resource.setHttpHeaders(httpHeaders);
}
@Test
public void testList() throws Exception {
resource.setUriInfo(setUpBasicUriExpectations());
setUpGetEntityExpectations(VdcQueryType.GetVdsHooksById,
IdQueryParameters.class,
new String[] { "Id" },
new Object[] { GUIDS[0] }, getEntity(0));
Hooks hooks = resource.list();
assertNotNull(hooks.getHooks());
assertEquals(4, hooks.getHooks().size());
}
}