/** * Converts a configuration into a configuration record. * * @param configurations the configurations for converting * @return converted configurations */ public static List<ConfigurationRecordDto> convertToConfigurationRecords( Collection<ConfigurationDto> configurations) { Map<String, ConfigurationRecordDto> configurationRecordsMap = new HashMap<>(); for (ConfigurationDto configuration : configurations) { ConfigurationRecordDto configurationRecord = configurationRecordsMap .get(configuration.getSchemaId()); if (configurationRecord == null) { configurationRecord = new ConfigurationRecordDto(); configurationRecordsMap.put(configuration.getSchemaId(), configurationRecord); } if (configuration.getStatus() == UpdateStatus.ACTIVE) { configurationRecord.setActiveStructureDto(configuration); } else if (configuration.getStatus() == UpdateStatus.INACTIVE) { configurationRecord.setInactiveStructureDto(configuration); } } return new ArrayList<>(configurationRecordsMap.values()); }
@Override public ConfigurationRecordDto findConfigurationRecordBySchemaIdAndEndpointGroupId( String schemaId, String endpointGroupId) { ConfigurationRecordDto record = new ConfigurationRecordDto(); Collection<ConfigurationDto> configurations = convertDtoList( configurationDao.findActualBySchemaIdAndGroupId(schemaId, endpointGroupId)); if (configurations != null) { for (ConfigurationDto configuration : configurations) { if (configuration.getStatus() == UpdateStatus.ACTIVE) { record.setActiveStructureDto(configuration); } else if (configuration.getStatus() == UpdateStatus.INACTIVE) { record.setInactiveStructureDto(configuration); } } } if (!record.hasActive()) { ConfigurationDto deprecatedConfiguration = getDto( configurationDao.findLatestDeprecated(schemaId, endpointGroupId)); if (deprecatedConfiguration != null) { record.setActiveStructureDto(deprecatedConfiguration); } } if (record.isEmpty()) { LOG.debug("Can't find related Configuration record."); throw new NotFoundException("Configuration record not found, schemaId: " + schemaId + ", endpointGroupId: " + endpointGroupId); // NOSONAR } return record; }
@Test public void createDefaultSchemaTest() { String id = generateApplicationDto().getId(); ConfigurationSchemaDto schema = generateConfSchemaDto(null, id, 1).get(0); ConfigurationDto config = configurationService.findConfigurationByAppIdAndVersion(id, schema.getVersion()); Assert.assertEquals(config.getStatus(), UpdateStatus.ACTIVE); }
@Test public void saveConfigurationObjectWithIdTest() throws SchemaCreationException, IOException, ConfigurationGenerationException { List<ConfigurationDto> configs = generateConfigurationDto(null, null, 1, false, false); ConfigurationDto saved = configurationService.findConfigurationById(configs.get(0).getId()); ConfigurationDto updated = configurationService.saveConfiguration(saved); // update one more time (nothing should change) updated = configurationService.saveConfiguration(updated); Assert.assertNotNull(saved); Assert.assertEquals(updated.getStatus(), UpdateStatus.INACTIVE); }
@Test public void deactivateConfigurationTest() { ConfigurationDto config = generateConfigurationDto(null, null, 1, true, false).get(0); configurationService.deactivateConfiguration(config.getId(), null); config = configurationService.findConfigurationById(config.getId()); Assert.assertNotNull(config); Assert.assertEquals(UpdateStatus.DEPRECATED, config.getStatus()); }
@Test public void findDefaultConfigurationBySchemaIdTest() { ConfigurationSchemaDto schema = generateConfSchemaDto(null, null, 1).get(0); ConfigurationDto configuration = configurationService.findDefaultConfigurationBySchemaId(schema.getId()); Assert.assertNotNull(configuration); Assert.assertEquals(UpdateStatus.ACTIVE, configuration.getStatus()); Assert.assertEquals(schema.getId(), configuration.getSchemaId()); }
@Test public void findAllConfigurationRecordsByEndpointGroupIdTest() { String id = generateApplicationDto().getId(); ConfigurationSchemaDto schema = generateConfSchemaDto(null, id, 1).get(0); EndpointGroupDto group = generateEndpointGroupDto(id); generateConfigurationDto(schema.getId(), group.getId(), 1, true, false); List<ConfigurationRecordDto> records = (List<ConfigurationRecordDto>) configurationService .findAllConfigurationRecordsByEndpointGroupId(group.getId(), false); Assert.assertNotNull(records); Assert.assertEquals(1, records.size()); ConfigurationDto activeConfiguration = records.get(0).getActiveStructureDto(); Assert.assertEquals(UpdateStatus.ACTIVE, activeConfiguration.getStatus()); ConfigurationDto inactiveConfiguration = records.get(0).getInactiveStructureDto(); Assert.assertNull(inactiveConfiguration); }
@Test public void saveConfigurationObjectWithoutIdTest() throws SchemaCreationException { List<ConfigurationDto> configs = generateConfigurationDto(null, null, 1, false, false); ConfigurationDto saved = configurationService.findConfigurationById(configs.get(0).getId()); String inactiveId = saved.getId(); saved.setId(null); ConfigurationDto updated = configurationService.saveConfiguration(saved); Assert.assertNotNull(saved); Assert.assertEquals(saved.getStatus(), UpdateStatus.INACTIVE); Assert.assertEquals(inactiveId, updated.getId()); }
@Test public void saveConfigurationObjectWithoutInactiveConfigurationTest() throws SchemaCreationException { List<ConfigurationDto> configs = generateConfigurationDto(null, null, 3, true, false); ConfigurationDto saved = configurationService.findConfigurationById(configs.get(2).getId()); String id = saved.getId(); saved.setId(null); ConfigurationDto updated = configurationService.saveConfiguration(saved); Assert.assertNotNull(updated); Assert.assertEquals(updated.getStatus(), UpdateStatus.INACTIVE); Assert.assertEquals(saved.getSequenceNumber(), updated.getSequenceNumber()); Assert.assertNotEquals(id, updated.getId()); }
if (StringUtils.isNotBlank(id)) { ConfigurationDto oldConfiguration = findConfigurationById(configurationDto.getId()); if (oldConfiguration != null && oldConfiguration.getStatus() != INACTIVE) { throw new UpdateStatusConflictException("Can't update configuration, invalid id " + id);
@Test public void deleteConfigurationRecordTest() { ConfigurationSchemaDto schemaDto = generateConfSchemaDto(null, null, 1).get(0); EndpointGroupDto group = generateEndpointGroupDto(schemaDto.getApplicationId()); generateConfigurationDto(schemaDto.getId(), group.getId(), 1, true, false); ChangeConfigurationNotification notification = configurationService.deleteConfigurationRecord(schemaDto.getId(), group.getId(), null); Assert.assertNotNull(notification); ConfigurationDto configurationDto = notification.getConfigurationDto(); Assert.assertEquals(UpdateStatus.DEPRECATED, configurationDto.getStatus()); StructureRecordDto<ConfigurationDto> records = configurationService .findConfigurationRecordBySchemaIdAndEndpointGroupId(schemaDto.getId(), group.getId()); Assert.assertNull(records.getInactiveStructureDto()); Assert.assertEquals(UpdateStatus.DEPRECATED, records.getActiveStructureDto().getStatus()); }
@Test public void activateConfiguration() { List<ConfigurationDto> configurations = generateConfigurationDto(null, null, 1, false, false); String configId = configurations.get(0).getId(); ConfigurationDto found = configurationService.findConfigurationById(configId); ChangeConfigurationNotification notification = configurationService.activateConfiguration(configId, null); Assert.assertNotNull(notification); ConfigurationDto dto = notification.getConfigurationDto(); Assert.assertNotNull(dto); Assert.assertEquals(dto.getStatus(), UpdateStatus.ACTIVE); Assert.assertEquals(dto.getId(), configId); Assert.assertNotEquals(dto.getSequenceNumber(), found.getSequenceNumber()); }