@Override public List<VersionDto> findVacantSchemasByEndpointGroupId(String endpointGroupId) { validateId(endpointGroupId, "Can't find vacant schemas. Invalid endpoint group id: " + endpointGroupId); EndpointGroup group = endpointGroupDao.findById(endpointGroupId); List<Configuration> configurations = configurationDao.findActualByEndpointGroupId( endpointGroupId); List<String> usedSchemaIds = new ArrayList<>(); for (Configuration configuration : configurations) { ConfigurationSchema schema = configuration.getConfigurationSchema(); if (schema != null) { usedSchemaIds.add(idToString(schema.getId())); } } List<ConfigurationSchema> schemas = configurationSchemaDao.findVacantSchemas( group.getApplicationId(), usedSchemaIds); List<VersionDto> schemaDtoList = new ArrayList<>(); for (ConfigurationSchema schema : schemas) { schemaDtoList.add(schema.toVersionDto()); } return schemaDtoList; }
@Test public void testFindVacantSchemasTest() { Application app1 = generateApplication(null); List<ConfigurationSchema> schemas1 = generateConfSchema(app1, 3); List<String> ids1 = new ArrayList<>(2); ids1.add(schemas1.get(0).getId().toString()); List<ConfigurationSchema> found2 = configurationSchemaDao.findVacantSchemas(app1.getId().toString(), ids1); Assert.assertEquals(2, found2.size()); List<ConfigurationSchema> found3 = configurationSchemaDao.findVacantSchemas(app1.getId().toString(), null); Assert.assertEquals(3, found3.size()); } }
@Test public void removeByConfigurationSchemaIdTest() { List<Configuration> configs = generateConfiguration(null, null, 3, UpdateStatus.ACTIVE); Assert.assertEquals(3, configs.size()); Long id = configs.get(0).getId(); ConfigurationSchema schema = configs.get(0).getConfigurationSchema(); configurationDao.removeByConfigurationSchemaId(schema.getId().toString()); Configuration found = configurationDao.findById(id.toString()); Assert.assertNull(found); }
@Test public void findLatestActiveBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); Configuration found = configurationDao.findLatestActiveBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(first, found); }
@Test public void findActualBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 4, UpdateStatus.DEPRECATED); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); List<Configuration> active = generateConfiguration(schema, group, 1, UpdateStatus.ACTIVE); generateConfiguration(null, group, 1, UpdateStatus.ACTIVE); List<Configuration> inactive = generateConfiguration(schema, group, 1, UpdateStatus.INACTIVE); List<Configuration> actual = new ArrayList<>(); actual.addAll(active); actual.addAll(inactive); List<Configuration> found = configurationDao.findActualBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(actual.size(), found.size()); Assert.assertEquals(actual, found); }
@Override public ConfigurationDto toDto() { ConfigurationDto dto = super.toDto(); dto.setBody(binaryToString(configurationBody)); dto.setSchemaId(ModelUtils.getStringId(configurationSchema.getId())); dto.setSchemaVersion(schemaVersion); dto.setProtocolSchema(configurationSchema != null ? configurationSchema.getProtocolSchema() : null); return dto; }
@Test public void findInactiveBySchemaIdAndGroupIdTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); List<Configuration> inactiveConfigs = generateConfiguration(schema, group, 1, UpdateStatus.INACTIVE); generateConfiguration(schema, group, 3, UpdateStatus.DEPRECATED); Configuration found = configurationDao.findInactiveBySchemaIdAndGroupId(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(inactiveConfigs.get(0), found); }
@Test public void findLatestDeprecatedTest() { List<Configuration> configs = generateConfiguration(null, null, 10, UpdateStatus.DEPRECATED); Assert.assertEquals(10, configs.size()); Configuration first = configs.get(0); EndpointGroup group = first.getEndpointGroup(); ConfigurationSchema schema = first.getConfigurationSchema(); Configuration deprecated = configurationDao.findLatestDeprecated(schema.getId().toString(), group.getId().toString()); Assert.assertEquals(UpdateStatus.DEPRECATED, deprecated.getStatus()); Assert.assertEquals(9, deprecated.getSequenceNumber()); }
@Test public void deactivateOldConfigurationTest() { List<Configuration> configs = generateConfiguration(null, null, 1, UpdateStatus.ACTIVE); Assert.assertEquals(1, configs.size()); Configuration first = configs.get(0); ConfigurationSchema schema = first.getConfigurationSchema(); EndpointGroup group = first.getEndpointGroup(); Assert.assertEquals(UpdateStatus.ACTIVE, first.getStatus()); Configuration deactivated = configurationDao.deactivateOldConfiguration(schema.getId().toString(), group.getId().toString(), "Test user"); Configuration found = configurationDao.findById(first.getId().toString()); Assert.assertEquals(UpdateStatus.DEPRECATED, deactivated.getStatus()); Assert.assertEquals(deactivated, found); } }