/** * Returns all {@link AbstractClassSensorAssignment} that are "added" as result of this update. * If profile was activated then it means that all assignments after the update are considered * for adding. * * @return Returns all {@link AbstractClassSensorAssignment} that are "removed". */ public Collection<AbstractClassSensorAssignment<?>> getAddedSensorAssignments() { if (isProfileDeactivated()) { // if it was deactivated then nothing is for adding return Collections.emptyList(); } else if (isProfileActivated()) { // if activated then we consider all new assignment to be for adding return getAllSensorAssignments(after); } else { // otherwise find the difference return getAssignmentsDifference(after, before); } }
/** * Returns all {@link AbstractClassSensorAssignment} that are "removed" as result of this * update. If profile was deactivated then it means that all assignments before the update are * considered for removal. * * @return Returns all {@link AbstractClassSensorAssignment} that are "removed". */ public Collection<AbstractClassSensorAssignment<?>> getRemovedSensorAssignments() { if (isProfileDeactivated()) { // if deactivated then we consider all old assignment to be for removal return getAllSensorAssignments(before); } else if (isProfileActivated()) { // if it was activated then nothing is for removal return Collections.emptyList(); } else { // otherwise find the difference return getAssignmentsDifference(before, after); } }
@Test public void profileNotActive() { cacheMap.put(1L, cacheEntry); eventListener.onApplicationEvent(event); verify(event).isProfileActive(); verify(event).isProfileDeactivated(); verifyNoMoreInteractions(event); verifyZeroInteractions(cacheEntry, configurationHolder, environment, updateJob, future, nextGenInstrumentationManager, objectFactory, executor); }
@Test public void deactivated() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); when(old.isActive()).thenReturn(true); when(updated.isActive()).thenReturn(false); ProfileUpdateEvent event = new ProfileUpdateEvent(this, old, updated); boolean deactivated = event.isProfileDeactivated(); assertThat(deactivated, is(true)); }
@Test public void wasNotActive() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); when(old.isActive()).thenReturn(false); when(updated.isActive()).thenReturn(false); ProfileUpdateEvent event = new ProfileUpdateEvent(this, old, updated); boolean deactivated = event.isProfileDeactivated(); assertThat(deactivated, is(false)); }
@Test public void stillActive() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); when(old.isActive()).thenReturn(true); when(updated.isActive()).thenReturn(true); ProfileUpdateEvent event = new ProfileUpdateEvent(this, old, updated); boolean deactivated = event.isProfileDeactivated(); assertThat(deactivated, is(false)); } }
public void onApplicationEvent(ProfileUpdateEvent event) { if (!event.isProfileActive() && !event.isProfileDeactivated()) { return;
@Test @SuppressWarnings({ "unchecked", "rawtypes" }) public void profileWasDeactivated() throws InterruptedException, ExecutionException, TimeoutException { cacheMap.put(1L, cacheEntry); when(event.isProfileDeactivated()).thenReturn(true); when(event.getProfileId()).thenReturn("id_1"); when(configurationHolder.isInitialized()).thenReturn(true); when(environment.getProfileIds()).thenReturn(Sets.newHashSet("id_1")); when(objectFactory.getObject()).thenReturn(updateJob); when(executor.submit(updateJob)).thenReturn((Future) future); eventListener.onApplicationEvent(event); verify(event).isProfileActive(); verify(event).isProfileDeactivated(); verify(event).getProfileId(); verify(nextGenInstrumentationManager).getAgentCacheMap(); verify(cacheEntry).getConfigurationHolder(); verify(configurationHolder).getEnvironment(); verify(configurationHolder).isInitialized(); verify(environment, times(2)).getProfileIds(); verify(objectFactory).getObject(); verify(executor).submit(updateJob); verify(updateJob).setAgentCacheEntry(cacheEntry); verify(updateJob).setProfileUpdateEvent(event); verify(future).get(1L, TimeUnit.MINUTES); verifyNoMoreInteractions(event, cacheEntry, configurationHolder, environment, updateJob, future, nextGenInstrumentationManager, objectFactory, executor); }