/** * {@inheritDoc} */ @Override public Profile createProfile(Profile profile) throws BusinessException { try { return ciManager.createProfile(profile); } catch (JAXBException e) { throw new TechnicalException("Create the profile '" + profile.getName() + "'.", ConfigurationInterfaceErrorCodeEnum.JAXB_MARSHALLING_OR_DEMARSHALLING_FAILED, e); } catch (IOException e) { throw new TechnicalException("Create the profile '" + profile.getName() + "'.", ConfigurationInterfaceErrorCodeEnum.INPUT_OUTPUT_OPERATION_FAILED, e); } }
@Test(expectedExceptions = BusinessException.class) public void createProfileNoProfileData() throws Exception { Profile profile = new Profile(); profile.setName("test"); manager.createProfile(profile); } }
@Test public void createProfileCheckId() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); manager.createProfile(profile); assertThat(profile.getId(), is(not(nullValue()))); assertThat(profile.getCreatedDate(), is(not(nullValue()))); assertThat(manager.getAllProfiles(), hasItem(profile)); }
@Test public void createProfileCheckExists() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); manager.createProfile(profile); assertThat(manager.getAllProfiles(), hasItem(profile)); }
@Test public void updateProfile() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); profile.setName("new"); Profile updated = manager.updateProfile(profile); assertThat(updated.getName(), is("new")); assertThat(updated.getRevision(), is(2)); assertThat(updated.getUpdatedDate(), is(greaterThanOrEqualTo(updated.getCreatedDate()))); ArgumentCaptor<ApplicationEvent> captor = ArgumentCaptor.forClass(ApplicationEvent.class); verify(eventPublisher).publishEvent(captor.capture()); assertThat(captor.getValue(), is(instanceOf(ProfileUpdateEvent.class))); }
@Test public void deleteProfile() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); manager.deleteProfile(profile); assertThat(manager.getAllProfiles(), is(empty())); }
@Test public void get() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); Profile result = manager.getProfile(profile.getId()); assertThat(result.getId(), is(profile.getId())); }
@Test public void updateProfileMethodAssignmentsChange() throws Exception { MethodSensorAssignment methodSensorAssignment1 = mock(MethodSensorAssignment.class); MethodSensorAssignment methodSensorAssignment2 = mock(MethodSensorAssignment.class); Profile profile = new Profile(); profile.setName("test"); SensorAssignmentProfileData profileData = new SensorAssignmentProfileData(); profileData.setMethodSensorAssignments(Collections.singletonList(methodSensorAssignment1)); profile.setProfileData(profileData); Profile created = manager.createProfile(profile); assertThat((Collection<MethodSensorAssignment>) profile.getProfileData().getData(SensorAssignmentProfileData.class), hasItem(methodSensorAssignment1)); profile = new Profile(); profile.setId(created.getId()); profile.setRevision(created.getRevision()); profile.setName(created.getName()); profileData = new SensorAssignmentProfileData(); profileData.setMethodSensorAssignments(Collections.singletonList(methodSensorAssignment2)); profile.setProfileData(profileData); Profile updated = manager.updateProfile(profile); assertThat((Collection<MethodSensorAssignment>) profile.getProfileData().getData(SensorAssignmentProfileData.class), hasItem(methodSensorAssignment2)); assertThat(updated.getRevision(), is(2)); ArgumentCaptor<ApplicationEvent> captor = ArgumentCaptor.forClass(ApplicationEvent.class); verify(eventPublisher).publishEvent(captor.capture()); assertThat(captor.getValue(), is(instanceOf(ProfileUpdateEvent.class))); ProfileUpdateEvent profileUpdateEvent = (ProfileUpdateEvent) captor.getValue(); assertThat(profileUpdateEvent.getRemovedSensorAssignments(), hasItem(methodSensorAssignment1)); assertThat(profileUpdateEvent.getAddedSensorAssignments(), hasItem(methodSensorAssignment2)); }
@Test public void updateProfileExceptionAssignmentsChange() throws Exception { ExceptionSensorAssignment exceptionSensorAssignment1 = mock(ExceptionSensorAssignment.class); ExceptionSensorAssignment exceptionSensorAssignment2 = mock(ExceptionSensorAssignment.class); Profile profile = new Profile(); profile.setName("test"); SensorAssignmentProfileData profileData = new SensorAssignmentProfileData(); profileData.setExceptionSensorAssignments(Collections.singletonList(exceptionSensorAssignment1)); profile.setProfileData(profileData); Profile created = manager.createProfile(profile); assertThat((Collection<ExceptionSensorAssignment>) profile.getProfileData().getData(SensorAssignmentProfileData.class), hasItem(exceptionSensorAssignment1)); profile = new Profile(); profile.setId(created.getId()); profile.setRevision(created.getRevision()); profile.setName(created.getName()); profileData = new SensorAssignmentProfileData(); profileData.setExceptionSensorAssignments(Collections.singletonList(exceptionSensorAssignment2)); profile.setProfileData(profileData); Profile updated = manager.updateProfile(profile); assertThat((Collection<ExceptionSensorAssignment>) profile.getProfileData().getData(SensorAssignmentProfileData.class), hasItem(exceptionSensorAssignment2)); assertThat(updated.getRevision(), is(2)); ArgumentCaptor<ApplicationEvent> captor = ArgumentCaptor.forClass(ApplicationEvent.class); verify(eventPublisher).publishEvent(captor.capture()); assertThat(captor.getValue(), is(instanceOf(ProfileUpdateEvent.class))); ProfileUpdateEvent profileUpdateEvent = (ProfileUpdateEvent) captor.getValue(); assertThat(profileUpdateEvent.getRemovedSensorAssignments(), hasItem(exceptionSensorAssignment1)); assertThat(profileUpdateEvent.getAddedSensorAssignments(), hasItem(exceptionSensorAssignment2)); }
profile1.setName("profile1"); profile1.setProfileData(new SensorAssignmentProfileData()); profile1 = manager.createProfile(profile1); Profile profile2 = new Profile(); profile2.setName("profile2"); profile2.setProfileData(new SensorAssignmentProfileData()); profile2 = manager.createProfile(profile2);
@Test public void createEnvironmentIncludeDefaults() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setDefaultProfile(true); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); Environment environment = new Environment(); environment.setName("test"); environment = manager.createEnvironment(environment); assertThat(environment.getProfileIds(), hasItem(profile.getId())); } }
@Test public void importProfileExists() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); manager.createProfile(profile); Profile importProfile = new Profile(); importProfile.setId(profile.getId()); importProfile.setName("imported"); manager.importProfile(importProfile); assertThat(manager.getProfile(profile.getId()), is(importProfile)); }
@Test public void deleteProfileRemovedFromEnvironment() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); Environment environment = new Environment(); environment.setName("Test"); environment = manager.createEnvironment(environment); environment.setProfileIds(new HashSet<>(Collections.singleton(profile.getId()))); environment = manager.updateEnvironment(environment, true); when(serializationManager.copy(any(Environment.class))).thenAnswer(new Answer<Environment>() { @Override public Environment answer(InvocationOnMock invocation) throws Throwable { Environment env = (Environment) invocation.getArguments()[0]; Environment copy = new Environment(); copy.setId(env.getId()); copy.setName(env.getName()); copy.setRevision(env.getRevision()); copy.setProfileIds(new HashSet<>(env.getProfileIds())); return copy; } }); manager.deleteProfile(profile); assertThat(manager.getEnvironment(environment.getId()).getProfileIds(), is(not(equalTo(environment.getProfileIds())))); assertThat(manager.getEnvironment(environment.getId()).getProfileIds(), is(empty())); }
@Test(expectedExceptions = { Exception.class }) public void updateProfileRevisionFails() throws Exception { Profile profile = new Profile(); profile.setName("test"); profile.setProfileData(new SensorAssignmentProfileData()); profile = manager.createProfile(profile); Profile clone = new Profile(); clone.setId(profile.getId()); manager.updateProfile(profile); manager.updateProfile(clone); }