Skip to content

Commit 675ee06

Browse files
authored
Merge pull request #650 from bci-oss/649-invalid-aspectmodelurn-is-valid-in-latest-version
Invalid AspectModelURN is valid in latest version
2 parents c937607 + 8e05f3c commit 675ee06

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

core/esmf-aspect-model-urn/src/main/java/org/eclipse/esmf/aspectmodel/urn/AspectModelUrn.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,9 @@ private static String getName( final boolean isSammUrn, final List<String> urnPa
262262
return modelElementName;
263263
}
264264
if ( MODEL_ELEMENT_TYPES.contains( elementType ) ) {
265+
//Check root model element name before current element name
266+
checkElementName( urnParts.get( ASPECT_NAME_INDEX ), "model element" );
267+
265268
final String modelElementName = urnParts.get( MODEL_ELEMENT_NAME_INDEX );
266269
checkElementName( modelElementName, elementType.getValue() + " element" );
267270
return modelElementName;

core/esmf-aspect-model-urn/src/test/java/org/eclipse/esmf/aspectmodel/urn/AspectModelUrnTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,4 +342,17 @@ void validNamespaceTest() throws URISyntaxException {
342342
assertThat( elementUrnWithDash.getNamespaceMainPart() ).isNotEmpty();
343343
assertThat( elementUrnWithDash.getNamespaceMainPart() ).isEqualTo( "org.eclipse.esmf-test" );
344344
}
345+
346+
@Test
347+
void invalidModelElementNameTest() throws URISyntaxException {
348+
final URI invalidRootModelElementName = new URI( sammBaseUri + "aspect-model:Er?ors:1.1.0#TestAspect" );
349+
assertThatExceptionOfType( UrnSyntaxException.class )
350+
.isThrownBy( () -> AspectModelUrn.fromUrn( invalidRootModelElementName ) )
351+
.withMessage( "The model element name must match \\p{Alpha}\\p{Alnum}*: Er?ors" );
352+
353+
final URI invalidModelElementName = new URI( sammBaseUri + "aspect-model:Er?ors:1.1.0:dummy#TestAspect" );
354+
assertThatExceptionOfType( UrnSyntaxException.class )
355+
.isThrownBy( () -> AspectModelUrn.fromUrn( invalidModelElementName ) )
356+
.withMessage( "The model element name must match \\p{Alpha}\\p{Alnum}*: Er?ors" );
357+
}
345358
}

0 commit comments

Comments
 (0)