package org.ovirt.engine.core.bll.network.vm; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.ovirt.engine.core.bll.network.macpool.MacPoolPerCluster; import org.ovirt.engine.core.bll.network.macpool.ReadMacPool; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.compat.Guid; @RunWith(MockitoJUnitRunner.class) public class ExternalVmMacsFinderTest { private static final Guid CLUSTER_ID = Guid.newGuid(); private static final String MAC_ADDRESS_1 = "mac address 1"; private static final String MAC_ADDRESS_2 = "mac address 2"; @Mock private MacPoolPerCluster mockMacPoolPerCluster; @Mock private ReadMacPool mockReadMacPool; @InjectMocks private ExternalVmMacsFinder underTest; private VM vm; private VmNetworkInterface vNic1 = new VmNetworkInterface(); private VmNetworkInterface vNic2 = new VmNetworkInterface(); @Before public void setUp() { vm = createVm(); when(mockMacPoolPerCluster.getMacPoolForCluster(CLUSTER_ID)).thenReturn(mockReadMacPool); } private VM createVm() { vm = new VM(); vm.setClusterId(CLUSTER_ID); vNic1.setMacAddress(MAC_ADDRESS_1); vNic2.setMacAddress(MAC_ADDRESS_2); return vm; } @Test public void testFindExternalMacAddresses() { when(mockReadMacPool.isMacInRange(MAC_ADDRESS_1)).thenReturn(Boolean.TRUE); when(mockReadMacPool.isMacInRange(MAC_ADDRESS_2)).thenReturn(Boolean.FALSE); vm.setInterfaces(Arrays.asList(vNic1, vNic2)); final Set<String> actual = underTest.findExternalMacAddresses(vm); assertThat(actual, contains(MAC_ADDRESS_2)); } @Test public void testFindExternalMacAddressesVnicsNull() { final Set<String> actual = underTest.findExternalMacAddresses(vm); assertThat(actual, empty()); } }