package rocks.inspectit.server.service; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; import java.util.Arrays; import java.util.Collections; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.slf4j.Logger; import org.testng.annotations.Test; import rocks.inspectit.server.messaging.AgentInstrumentationMessageGate; import rocks.inspectit.shared.all.testbase.TestBase; /** * Tests the {@link AgentInstrumentationService} class. * * @author Marius Oehler * */ @SuppressWarnings("PMD") public class AgentInstrumentationServiceTest extends TestBase { @InjectMocks AgentInstrumentationService instrumentationService; @Mock Logger log; @Mock AgentInstrumentationMessageGate messageGate; /** * Tests the {@link AgentInstrumentationService#updateInstrumentation(java.util.Collection)} * method. */ public static class UpdateInstrumentation extends AgentInstrumentationServiceTest { @Test public void successful() { instrumentationService.updateInstrumentation(Arrays.asList(10L, 20L)); ArgumentCaptor<Long> platformIdentCaptor = ArgumentCaptor.forClass(Long.class); verify(messageGate, times(2)).flush(platformIdentCaptor.capture()); verifyNoMoreInteractions(messageGate); assertThat(platformIdentCaptor.getAllValues(), contains(10L, 20L)); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullParameterIdentCollection() { try { instrumentationService.updateInstrumentation(null); } finally { verifyZeroInteractions(messageGate); } } @Test(expectedExceptions = IllegalArgumentException.class) @SuppressWarnings("unchecked") public void emptyParameterIdentCollection() { try { instrumentationService.updateInstrumentation(Collections.EMPTY_LIST); } finally { verifyZeroInteractions(messageGate); } } } }