/** * {@inheritDoc} */ @Override public void onApplicationEvent(ApplicationEvent event) { if (event instanceof AgentDeletedEvent) { handleAgentDeletedEvent((AgentDeletedEvent) event); } else if (event instanceof AgentRegisteredEvent) { handleAgentRegisteredEvent((AgentRegisteredEvent) event); } }
/** * {@inheritDoc} */ @Override public synchronized void onApplicationEvent(ApplicationEvent event) { if (event instanceof ClassInstrumentationChangedEvent) { handleClassInstrumentationChangedEvent((ClassInstrumentationChangedEvent) event); } else if (event instanceof AgentDeletedEvent) { handleAgentDeletedEvent((AgentDeletedEvent) event); } else if (event instanceof AgentRegisteredEvent) { handleAgentRegisteredEvent((AgentRegisteredEvent) event); } }
/** * Handles an event of type {@link AgentRegisteredEvent}. * * @param event * the event instance */ private void handleAgentRegisteredEvent(AgentRegisteredEvent event) { clear(event.getPlatformId()); }
@Test(expectedExceptions = IllegalArgumentException.class) public void nullMessages() { try { messageProvider.provideMessages(10L, null); } finally { assertThat(messageProvider.fetchMessages(10L), hasSize(0)); } }
@Test(expectedExceptions = IllegalArgumentException.class) public void nullMessage() { try { messageProvider.provideMessage(10L, null); } finally { assertThat(messageProvider.fetchMessages(10L), hasSize(0)); } } }
@Test public void successful() throws Exception { when(definition.getClassName()).thenReturn("class.one"); ClassInstrumentationChangedEvent event = new ClassInstrumentationChangedEvent(this, 10L, Arrays.asList(definition)); messageGate.onApplicationEvent(event); messageGate.clear(10L); verifyZeroInteractions(messageProvider); assertThat(getDefinitionBuffer().get(10L).entrySet(), hasSize(0)); }
/** * {@inheritDoc} */ @Override @MethodLog public List<IAgentMessage<?>> fetchAgentMessages(long platformId) { return messageProvider.fetchMessages(platformId); }
/** * Handles an event of type {@link AgentDeletedEvent}. * * @param event * the event instance */ private void handleAgentDeletedEvent(AgentDeletedEvent event) { clear(event.getPlatformId()); }
/** * Puts the given {@link IAgentMessage} in the list which can be fetched by the agent. * * @param platformId * the id of the agent to receive the message * @param message * the {@link IAgentMessage} */ public synchronized void provideMessage(long platformId, IAgentMessage<?> message) { if (message == null) { throw new IllegalArgumentException("The agent message may not be null."); } List<IAgentMessage<?>> messageList = Arrays.<IAgentMessage<?>> asList(message); provideMessages(platformId, messageList); }
@Test public void agentDeletedEvent() throws Exception { when(definitionOne.getClassName()).thenReturn("class.one"); ClassInstrumentationChangedEvent event = new ClassInstrumentationChangedEvent(this, 10L, Collections.singletonList(definitionOne)); messageGate.onApplicationEvent(event); AgentDeletedEvent deletedEvent = new AgentDeletedEvent(this, 10L); messageGate.onApplicationEvent(deletedEvent); assertThat(getDefinitionBuffer().get(10L).entrySet(), hasSize(0)); }
@Test public void nullEvent() throws Exception { messageGate.onApplicationEvent(null); verifyZeroInteractions(definitionOne, definitionTwo, definitionThree, agentStatusDataProvider, statusData, messageProvider); } }
@Test(expectedExceptions = IllegalArgumentException.class) @SuppressWarnings("unchecked") public void emptyMessages() { try { messageProvider.provideMessages(10L, Collections.EMPTY_LIST); } finally { assertThat(messageProvider.fetchMessages(10L), hasSize(0)); } } }
@Test @SuppressWarnings("unchecked") public void successful() { IAgentMessage<?> messageOne = mock(IAgentMessage.class); IAgentMessage<?> messageTwo = mock(IAgentMessage.class); IAgentMessage<?> messageThree = mock(IAgentMessage.class); messageProvider.provideMessage(10L, messageOne); messageProvider.provideMessage(10L, messageTwo); messageProvider.provideMessage(10L, messageThree); assertThat(messageProvider.fetchMessages(10L), contains(messageOne, messageTwo, messageThree)); }
@Test public void unknownPlatformId() throws Exception { when(definition.getClassName()).thenReturn("class.one"); ClassInstrumentationChangedEvent event = new ClassInstrumentationChangedEvent(this, 10L, Arrays.asList(definition)); messageGate.onApplicationEvent(event); messageGate.clear(20L); verifyZeroInteractions(messageProvider); assertThat(getDefinitionBuffer().get(10L).entrySet(), hasSize(1)); } }
/** * Handles an event of type {@link AgentDeletedEvent}. * * @param event * the event instance */ private void handleAgentDeletedEvent(AgentDeletedEvent event) { clear(event.getPlatformId()); }
@Test public void successful() throws Exception { agentService.fetchAgentMessages(10L); verify(messageProvider).fetchMessages(10L); verifyNoMoreInteractions(messageProvider); verifyZeroInteractions(instrumentationManager); } }
/** * Handles an event of type {@link AgentRegisteredEvent}. * * @param event * the event instance */ private void handleAgentRegisteredEvent(AgentRegisteredEvent event) { clear(event.getPlatformId()); } }
@Test public void unknownEvent() throws Exception { messageGate.onApplicationEvent(mock(ApplicationEvent.class)); verifyZeroInteractions(definitionOne, definitionTwo, definitionThree, agentStatusDataProvider, statusData, messageProvider); }
@Test public void unknownPlatformId() { IAgentMessage<?> messageOne = mock(IAgentMessage.class); IAgentMessage<?> messageTwo = mock(IAgentMessage.class); messageProvider.provideMessages(10L, Arrays.asList(messageOne, messageTwo)); Collection<IAgentMessage<?>> result = messageProvider.fetchMessages(1L); assertThat(result, hasSize(0)); } }
@Test @SuppressWarnings("unchecked") public void successful() { IAgentMessage<?> messageOne = mock(IAgentMessage.class); IAgentMessage<?> messageTwo = mock(IAgentMessage.class); IAgentMessage<?> messageThree = mock(IAgentMessage.class); messageProvider.provideMessages(10L, Arrays.asList(messageOne, messageTwo, messageThree)); assertThat(messageProvider.fetchMessages(10L), contains(messageOne, messageTwo, messageThree)); }