/** * Notifies listeners about environment update. * * @param old * Old environment instance. * @param updated * Updated environment instance. */ private void publishEnvironmentUpdateEvent(Environment old, Environment updated) { Collection<Profile> removedProfiles = getProfileDifference(old, updated); Collection<Profile> addedProfiles = getProfileDifference(updated, old); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, addedProfiles, removedProfiles); eventPublisher.publishEvent(event); }
@Test(expectedExceptions = IllegalArgumentException.class) public void idsNotMatching() { when(updated.getId()).thenReturn(ID); when(old.getId()).thenReturn("smth"); new EnvironmentUpdateEvent(this, old, updated, null, null); } }
@Test public void functionalAdded() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); SpecialMethodSensorAssignment functionalAssignment = mock(SpecialMethodSensorAssignment.class); when(functionalAssignmentFactory.getSpecialAssignments(old)).thenReturn(Collections.<SpecialMethodSensorAssignment> emptyList()); when(functionalAssignmentFactory.getSpecialAssignments(updated)).thenReturn(Collections.singletonList(functionalAssignment)); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, null); Collection<AbstractClassSensorAssignment<?>> added = event.getAddedSensorAssignments(functionalAssignmentFactory); assertThat(added, hasSize(1)); assertThat(added, hasItem(functionalAssignment)); }
@Test public void profileRemoved() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); AbstractClassSensorAssignment<?> assignment = mock(AbstractClassSensorAssignment.class); doReturn(Collections.singletonList(assignment)).when(profileData).getData(SensorAssignmentProfileData.class); when(profile.isActive()).thenReturn(true); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, Collections.singletonList(profile)); Collection<AbstractClassSensorAssignment<?>> removed = event.getRemovedSensorAssignments(functionalAssignmentFactory); assertThat(removed, hasSize(1)); assertThat(removed, hasItem(assignment)); }
@Test public void functionalRemoved() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); SpecialMethodSensorAssignment functionalAssignment = mock(SpecialMethodSensorAssignment.class); when(functionalAssignmentFactory.getSpecialAssignments(old)).thenReturn(Collections.singletonList(functionalAssignment)); when(functionalAssignmentFactory.getSpecialAssignments(updated)).thenReturn(Collections.<SpecialMethodSensorAssignment> emptyList()); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, null); Collection<AbstractClassSensorAssignment<?>> removed = event.getRemovedSensorAssignments(functionalAssignmentFactory); assertThat(removed, hasSize(1)); assertThat(removed, hasItem(functionalAssignment)); }
@Test public void profileAdded() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); AbstractClassSensorAssignment<?> assignment = mock(AbstractClassSensorAssignment.class); doReturn(Collections.singletonList(assignment)).when(profileData).getData(SensorAssignmentProfileData.class); when(profile.isActive()).thenReturn(true); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, Collections.singletonList(profile), null); Collection<AbstractClassSensorAssignment<?>> added = event.getAddedSensorAssignments(functionalAssignmentFactory); assertThat(added, hasSize(1)); assertThat(added, hasItem(assignment)); }
@Test public void profileRemovedNotActive() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); AbstractClassSensorAssignment<?> assignment = mock(AbstractClassSensorAssignment.class); doReturn(Collections.singletonList(assignment)).when(profileData).getData(SensorAssignmentProfileData.class); when(profile.isActive()).thenReturn(false); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, Collections.singletonList(profile)); Collection<AbstractClassSensorAssignment<?>> removed = event.getRemovedSensorAssignments(functionalAssignmentFactory); assertThat(removed, is(empty())); }
@Test public void profileRemovedNotActive() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); AbstractClassSensorAssignment<?> assignment = mock(AbstractClassSensorAssignment.class); doReturn(Collections.singletonList(assignment)).when(profileData).getData(SensorAssignmentProfileData.class); when(profile.isActive()).thenReturn(false); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, Collections.singletonList(profile), null); Collection<AbstractClassSensorAssignment<?>> added = event.getAddedSensorAssignments(functionalAssignmentFactory); assertThat(added, is(empty())); }
@Test public void functionalNoChange() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); SpecialMethodSensorAssignment functionalAssignment = mock(SpecialMethodSensorAssignment.class); when(functionalAssignmentFactory.getSpecialAssignments(old)).thenReturn(Collections.singletonList(functionalAssignment)); when(functionalAssignmentFactory.getSpecialAssignments(updated)).thenReturn(Collections.singletonList(functionalAssignment)); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, null); Collection<AbstractClassSensorAssignment<?>> removed = event.getRemovedSensorAssignments(functionalAssignmentFactory); assertThat(removed, is(empty())); }
@Test public void functionalNoChange() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); SpecialMethodSensorAssignment functionalAssignment = mock(SpecialMethodSensorAssignment.class); when(functionalAssignmentFactory.getSpecialAssignments(old)).thenReturn(Collections.singletonList(functionalAssignment)); when(functionalAssignmentFactory.getSpecialAssignments(updated)).thenReturn(Collections.singletonList(functionalAssignment)); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, null); Collection<AbstractClassSensorAssignment<?>> added = event.getAddedSensorAssignments(functionalAssignmentFactory); assertThat(added, is(empty())); }
@Test public void wrongProfileData() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); when(profileData.isOfType(SensorAssignmentProfileData.class)).thenReturn(false); when(profile.isActive()).thenReturn(true); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, Collections.singletonList(profile)); Collection<AbstractClassSensorAssignment<?>> removed = event.getRemovedSensorAssignments(functionalAssignmentFactory); assertThat(removed, is(empty())); }
@Test public void wrongProfileData() { when(old.getId()).thenReturn(ID); when(updated.getId()).thenReturn(ID); when(profileData.isOfType(SensorAssignmentProfileData.class)).thenReturn(false); when(profile.isActive()).thenReturn(true); EnvironmentUpdateEvent event = new EnvironmentUpdateEvent(this, old, updated, null, Collections.singletonList(profile)); Collection<AbstractClassSensorAssignment<?>> added = event.getAddedSensorAssignments(functionalAssignmentFactory); assertThat(added, is(empty())); } }