package org.ovirt.engine.core.bll.network.dc; import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Predicate; import org.junit.Test; import org.mockito.Mock; import org.ovirt.engine.core.bll.AbstractQueryTest; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.network.NetworkDao; public class GetManagementNetworkCandidatesQueryTest extends AbstractQueryTest<IdQueryParameters, GetManagementNetworkCandidatesQuery<IdQueryParameters>> { public static final Guid DC_ID = Guid.newGuid(); @Mock private NetworkDao mockNetworkDao; @Mock private Predicate<Network> mockNetworkPredicate; @Mock private Network mockExternalNetwork; @Mock private Network mockManagementNetworkCandidate; private List<Network> dcNetworks = new ArrayList<>(); @Override protected void initQuery(GetManagementNetworkCandidatesQuery<IdQueryParameters> query) { super.initQuery(query); when(query.getParameters().getId()).thenReturn(DC_ID); when(mockNetworkPredicate.test(mockExternalNetwork)).thenReturn(false); when(mockNetworkPredicate.test(mockManagementNetworkCandidate)).thenReturn(true); when(mockNetworkDao.getAllForDataCenter(DC_ID)).thenReturn(dcNetworks); } @Test public void testExecuteQueryCommand() { dcNetworks.addAll(Arrays.asList(mockExternalNetwork, mockManagementNetworkCandidate)); getQuery().executeQueryCommand(); final List<Network> actual = getQuery().getQueryReturnValue().getReturnValue(); assertNotNull(actual); assertThat(actual, hasSize(1)); assertTrue(actual.contains(mockManagementNetworkCandidate)); } @Test public void testExecuteQueryCommandNoNetworksDefined() { getQuery().executeQueryCommand(); final List<Network> actual = getQuery().getQueryReturnValue().getReturnValue(); assertTrue(actual.isEmpty()); } }