package org.ovirt.engine.core.bll.network.vm.mac;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.sameInstance;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.ovirt.engine.core.bll.network.vm.ExternalVmMacsFinder;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
@RunWith(MockitoJUnitRunner.class)
public class OutOfRangeVmMacsFinderTest {
private static final Guid CLUSTER_ID = Guid.newGuid();
@Mock
private ExternalVmMacsFinder mockExternalVmMacsFinder;
@Captor
private ArgumentCaptor<VM> vmCaptor;
private VM vm;
private OutOfRangeVmMacsFinder underTest;
@Before
public void setUp() {
underTest = new OutOfRangeVmMacsFinder(mockExternalVmMacsFinder, CLUSTER_ID);
vm = new VM();
}
@Test
public void testFindProblematicMacs() {
final Set<String> externalMacs = new HashSet<>();
when(mockExternalVmMacsFinder.findExternalMacAddresses(vm)).thenReturn(externalMacs);
final Collection<String> actual = underTest.findProblematicMacs(vm);
assertThat(actual, sameInstance(externalMacs));
verify(mockExternalVmMacsFinder).findExternalMacAddresses(vmCaptor.capture());
assertThat(vmCaptor.getValue().getClusterId(), is(CLUSTER_ID));
}
}