Maor Lipchuk has uploaded a new change for review. Change subject: core: Initialize internal lists in IscsiBond ......................................................................
core: Initialize internal lists in IscsiBond Initialize the storage domains and the networks when fectching IscsiBond from query command, also adding a test to the query. Change-Id: I167b1c6d6c5f83022c18faad555c0ff2e6f1f44b Bug-Url: https://bugzilla.redhat.com/1133279 Signed-off-by: Maor Lipchuk <mlipc...@redhat.com> --- D backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetIscsiBondByIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQuery.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQueryTest.java 3 files changed, 142 insertions(+), 15 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/32128/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetIscsiBondByIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetIscsiBondByIdQuery.java deleted file mode 100644 index 0d91197..0000000 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetIscsiBondByIdQuery.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ovirt.engine.core.bll; - -import org.ovirt.engine.core.common.queries.IdQueryParameters; - -public class GetIscsiBondByIdQuery <P extends IdQueryParameters> extends QueriesCommandBase<P> { - - public GetIscsiBondByIdQuery(P parameters) { - super(parameters); - } - - @Override - protected void executeQueryCommand() { - getQueryReturnValue().setReturnValue(getDbFacade().getIscsiBondDao().get(getParameters().getId())); - } -} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQuery.java new file mode 100644 index 0000000..c6cc075 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQuery.java @@ -0,0 +1,30 @@ +package org.ovirt.engine.core.bll.storage; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.dao.IscsiBondDao; + +public class GetIscsiBondByIdQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { + + public GetIscsiBondByIdQuery(P parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + IscsiBond iscsiBond = getIscsiBondDao().get(getParameters().getId()); + if (iscsiBond != null) { + iscsiBond.getNetworkIds().addAll(getDbFacade().getIscsiBondDao() + .getNetworkIdsByIscsiBondId(iscsiBond.getId())); + iscsiBond.getStorageConnectionIds().addAll(getDbFacade().getIscsiBondDao() + .getStorageConnectionIdsByIscsiBondId(iscsiBond.getId())); + getQueryReturnValue().setReturnValue(iscsiBond); + } + } + + protected IscsiBondDao getIscsiBondDao() { + return getDbFacade().getIscsiBondDao(); + } + +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQueryTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQueryTest.java new file mode 100644 index 0000000..e7c25f6 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetIscsiBondByIdQueryTest.java @@ -0,0 +1,112 @@ +package org.ovirt.engine.core.bll.storage; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.bll.AbstractQueryTest; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.IscsiBondDao; + +@RunWith(MockitoJUnitRunner.class) +public class GetIscsiBondByIdQueryTest extends + AbstractQueryTest<IdQueryParameters, GetIscsiBondByIdQuery<IdQueryParameters>> { + @Mock + private IscsiBondDao iscsiBondDao; + + Guid iscsiBondId = Guid.newGuid(); + + @Override + public void setUp() throws Exception { + super.setUp(); + when(getDbFacadeMockInstance().getIscsiBondDao()).thenReturn(iscsiBondDao); + } + + @Test + public void testExecuteQueryCommand() { + IscsiBond iscsiBond = mockIscsiBond(); + when(getQueryParameters().getId()).thenReturn(iscsiBondId); + when(iscsiBondDao.get(iscsiBondId)).thenReturn(iscsiBond); + + // Mock Networks and Storage Server Connections + List<Guid> networks = new ArrayList<>(); + List<String> storageServerConnections = new ArrayList<>(); + mockNetworksAndStorages(iscsiBondId, networks, storageServerConnections); + + getQuery().executeQueryCommand(); + IscsiBond result = getQuery().getQueryReturnValue().getReturnValue(); + + assertNotNull(result); + + assertNotNull(iscsiBond.getNetworkIds()); + assertEquals(0, iscsiBond.getNetworkIds().size()); + + assertNotNull(iscsiBond.getStorageConnectionIds()); + assertEquals(0, iscsiBond.getStorageConnectionIds().size()); + } + + @Test + public void testExecuteQueryWithStoragesAndNetworksCommand() { + IscsiBond iscsiBond = mockIscsiBond(); + when(getQueryParameters().getId()).thenReturn(iscsiBondId); + when(iscsiBondDao.get(iscsiBondId)).thenReturn(iscsiBond); + + // Mock Networks and Storage Server Connections + List<Guid> networks = new ArrayList<>(); + Guid networkId = Guid.newGuid(); + networks.add(networkId); + List<String> storageServerConnections = new ArrayList<>(); + String connectionId = Guid.newGuid().toString(); + storageServerConnections.add(connectionId); + mockNetworksAndStorages(iscsiBondId, networks, storageServerConnections); + + getQuery().executeQueryCommand(); + IscsiBond result = getQuery().getQueryReturnValue().getReturnValue(); + + assertNotNull(result); + + assertNotNull(iscsiBond.getNetworkIds()); + assertEquals(1, iscsiBond.getNetworkIds().size()); + assertEquals(iscsiBond.getNetworkIds().get(0), networkId); + + assertNotNull(iscsiBond.getStorageConnectionIds()); + assertEquals(1, iscsiBond.getStorageConnectionIds().size()); + assertEquals(iscsiBond.getStorageConnectionIds().get(0), connectionId); + } + + @Test + public void testExecuteQueryWithNotExistingIscsiBond() { + IscsiBond iscsiBond = new IscsiBond(); + iscsiBond.setId(Guid.newGuid()); + + when(getQueryParameters().getId()).thenReturn(iscsiBondId); + when(iscsiBondDao.get(Guid.newGuid())).thenReturn(iscsiBond); + + getQuery().executeQueryCommand(); + IscsiBond result = getQuery().getQueryReturnValue().getReturnValue(); + + assertNull(result); + } + + private IscsiBond mockIscsiBond() { + IscsiBond iscsiBond = new IscsiBond(); + iscsiBond.setId(iscsiBondId); + return iscsiBond; + } + + private void mockNetworksAndStorages(Guid iscsiBondId, List<Guid> networks, List<String> storageServerConnections) { + when(iscsiBondDao.getNetworkIdsByIscsiBondId(iscsiBondId)).thenReturn(networks); + when(iscsiBondDao.getStorageConnectionIdsByIscsiBondId(iscsiBondId)).thenReturn(storageServerConnections); + } + +} -- To view, visit http://gerrit.ovirt.org/32128 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I167b1c6d6c5f83022c18faad555c0ff2e6f1f44b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches