}
private EtsiVersion getComponentEtsiVersion(Component component) {
- final String etsiVersion = component.getCategorySpecificMetadata().get(ETSI_VERSION_METADATA);
+ String etsiVersion = component.getCategorySpecificMetadata().get(ETSI_VERSION_METADATA);
+ final String modelName = component.getModel();
+ if (etsiVersion == null && modelName.matches(".*\\d+\\.\\d+\\.\\d+.*" )){
+ etsiVersion = modelName.replaceAll(".*?(\\d+\\.\\d+\\.\\d+).*", "$1");
+ }
return EtsiVersion.convertOrNull(etsiVersion);
}
nsdCsar.getCsarPackage()));
}
+ @Test
+ void successfullyEntryGenerationWithVersionFromModelNameTest() throws NsdException {
+ mockServiceComponentWithoutMetadata();
+ final NsdCsar nsdCsar = new NsdCsar(SERVICE_NORMALIZED_NAME);
+ nsdCsar.setCsarPackage(new byte[5]);
+ when(etsiNfvNsdCsarGenerator.generateNsdCsar(service)).thenReturn(nsdCsar);
+ final Map<String, byte[]> entryMap = etsiNfvNsCsarEntryGenerator.generateCsarEntries(service);
+ assertThat("Csar Entries should contain only one entry", entryMap.size(), is(1));
+ assertThat("Csar Entries should contain the expected entry", entryMap,
+ hasEntry(String.format(NSD_FILE_PATH_FORMAT, ETSI_PACKAGE, SERVICE_NORMALIZED_NAME, UNSIGNED_CSAR_EXTENSION),
+ nsdCsar.getCsarPackage()));
+ }
+
@Test
void knownNsdGenerationErrorTest() throws NsdException {
mockServiceComponent();
categoryDefinitionList.add(nsComponentCategoryDefinition);
when(service.getCategories()).thenReturn(categoryDefinitionList);
}
+
+ private void mockServiceComponentWithoutMetadata() {
+ when(service.getName()).thenReturn("anyName");
+ when(service.getComponentType()).thenReturn(ComponentTypeEnum.SERVICE);
+ when(service.getNormalizedName()).thenReturn(SERVICE_NORMALIZED_NAME);
+ when(service.getModel()).thenReturn("Any Name with Version v2.5.1");
+ final List<CategoryDefinition> categoryDefinitionList = new ArrayList<>();
+ final CategoryDefinition nsComponentCategoryDefinition = new CategoryDefinition();
+ nsComponentCategoryDefinition.setName(CategoriesToGenerateNsd.ETSI_NS_COMPONENT_CATEGORY.getCategoryName());
+ categoryDefinitionList.add(nsComponentCategoryDefinition);
+ when(service.getCategories()).thenReturn(categoryDefinitionList);
+ }
}