package org.ovirt.engine.core.bll.gluster; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.doReturn; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.ovirt.engine.core.bll.AbstractQueryTest; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookContentType; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStatus; import org.ovirt.engine.core.common.queries.gluster.GlusterParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.gluster.GlusterHooksDao; public class GetGlusterHooksQueryTest extends AbstractQueryTest<GlusterParameters, GetGlusterHooksQuery<GlusterParameters>> { public static Guid CLUSTER_ID = new Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1"); List<GlusterHookEntity> expected; List<GlusterHookEntity> emptyList; @Mock GlusterHooksDao glusterHookDaoMock; @Before @Override public void setUp() throws Exception { super.setUp(); setupMock(); } private void setupMock() { expected = getExpectedHooksList(); emptyList = new ArrayList<>(); // Mock the query's parameters doReturn(CLUSTER_ID).when(getQueryParameters()).getClusterId(); } private List<GlusterHookEntity> getExpectedHooksList() { List<GlusterHookEntity> glusterHooks = new ArrayList<>(); GlusterHookEntity hook = new GlusterHookEntity(); hook.setClusterId(CLUSTER_ID); hook.setGlusterCommand("start"); hook.setStage("POST"); hook.setName("cifs_config"); hook.setStatus(GlusterHookStatus.ENABLED); hook.setChecksum("e72c504dc16c8fcd2fe8c74bb492affa"); hook.setContentType(GlusterHookContentType.TEXT); hook.setConflictStatus(0); glusterHooks.add(hook); hook = new GlusterHookEntity(); hook.setClusterId(CLUSTER_ID); hook.setGlusterCommand("create"); hook.setStage("PRE"); hook.setName("virt_config"); hook.setStatus("DISABLED"); hook.setChecksum("d72c504dc16c8fcd2fe8c74bb492affb"); hook.setContentType(GlusterHookContentType.BINARY); hook.setConflictStatus(0); glusterHooks.add(hook); return glusterHooks; } private void mockEmptyListFromDb() { doReturn(emptyList).when(glusterHookDaoMock).getByClusterId(CLUSTER_ID); } private void mockExpectedListFromDb() { doReturn(expected).when(glusterHookDaoMock).getByClusterId(CLUSTER_ID); } @Test public void testExecuteQueryCommand1() { mockExpectedListFromDb(); getQuery().executeQueryCommand(); List<GlusterHookEntity> hooks = getQuery().getQueryReturnValue().getReturnValue(); assertNotNull(hooks); assertEquals(expected, hooks); } @Test public void testExecuteQueryCommand2() { mockEmptyListFromDb(); getQuery().executeQueryCommand(); List<GlusterHookEntity> hooks = getQuery().getQueryReturnValue().getReturnValue(); assertNotNull(hooks); assertEquals(emptyList, hooks); } }