Skip to content

Commit 95fcd43

Browse files
Clean up tests and add test JSON payloads
1 parent edae7c7 commit 95fcd43

File tree

5 files changed

+96
-12
lines changed

5 files changed

+96
-12
lines changed

core/sds-aspect-model-aas-generator/src/test/java/io/openmanufacturing/sds/aspectmodel/aas/AspectModelAASGeneratorTest.java

Lines changed: 69 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,27 @@
1212
*/
1313
package io.openmanufacturing.sds.aspectmodel.aas;
1414

15+
import static org.assertj.core.api.Assertions.assertThat;
1516
import static org.junit.jupiter.api.Assertions.*;
1617

1718
import java.io.ByteArrayInputStream;
1819
import java.io.ByteArrayOutputStream;
1920
import java.io.IOException;
20-
import java.nio.file.Files;
21-
import java.nio.file.Path;
2221
import java.util.List;
2322
import java.util.Map;
2423
import java.util.Set;
2524
import java.util.stream.Collectors;
2625

26+
import org.assertj.core.api.InstanceOfAssertFactories;
2727
import org.eclipse.digitaltwin.aas4j.v3.dataformat.DeserializationException;
2828
import org.eclipse.digitaltwin.aas4j.v3.dataformat.xml.XmlDeserializer;
2929
import org.eclipse.digitaltwin.aas4j.v3.model.ConceptDescription;
3030
import org.eclipse.digitaltwin.aas4j.v3.model.DataSpecificationIEC61360;
3131
import org.eclipse.digitaltwin.aas4j.v3.model.DataTypeDefXsd;
3232
import org.eclipse.digitaltwin.aas4j.v3.model.EmbeddedDataSpecification;
3333
import org.eclipse.digitaltwin.aas4j.v3.model.Environment;
34+
import org.eclipse.digitaltwin.aas4j.v3.model.LangString;
35+
import org.eclipse.digitaltwin.aas4j.v3.model.MultiLanguageProperty;
3436
import org.eclipse.digitaltwin.aas4j.v3.model.Property;
3537
import org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement;
3638
import org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElementCollection;
@@ -53,13 +55,71 @@ class AspectModelAASGeneratorTest {
5355
AspectModelAASGenerator generator = new AspectModelAASGenerator();
5456

5557
@Test
56-
void testGenerateXmlFromBammAspectWithSimpleProperty() throws IOException, DeserializationException {
57-
//getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_PROPERTY );
58-
//getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_ENTITY );
59-
//getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_NESTED_ENTITY );
60-
//getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_ENTITY_LIST );
61-
//getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_COLLECTION_OF_SIMPLE_TYPE );
62-
getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_NESTED_ENTITY_LIST );
58+
void generateAasxWithAspectDataForMultilanguageText() throws IOException, DeserializationException {
59+
final Environment env = getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_MULTI_LANGUAGE_TEXT );
60+
assertThat( env.getSubmodels() )
61+
.singleElement()
62+
.satisfies( subModel -> {
63+
assertThat( subModel.getSubmodelElements() )
64+
.singleElement()
65+
.satisfies( property -> {
66+
assertThat( property ).asInstanceOf( InstanceOfAssertFactories.type( MultiLanguageProperty.class ) )
67+
.extracting( mlp -> mlp.getValue() )
68+
.asList()
69+
.hasSize( 2 )
70+
.allSatisfy( langString -> {
71+
List.of( "en", "de" ).contains( ((LangString) langString).getLanguage() );
72+
} );
73+
} );
74+
} );
75+
}
76+
77+
@Test
78+
void generateAasxWithAspectDataForEitherWithEntity() throws IOException, DeserializationException {
79+
final Environment env = getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_EITHER_WITH_COMPLEX_TYPES );
80+
assertThat( env.getSubmodels() )
81+
.singleElement()
82+
.satisfies( subModel -> {
83+
assertThat( subModel.getSubmodelElements() )
84+
.anySatisfy( sme -> {
85+
assertThat( sme ).asInstanceOf( InstanceOfAssertFactories.type( SubmodelElementList.class ) )
86+
.extracting( smel -> smel.getValue() )
87+
.asList()
88+
.anySatisfy( entity -> {
89+
assertThat( entity ).asInstanceOf( InstanceOfAssertFactories.type( SubmodelElementCollection.class ) )
90+
.extracting( smec -> smec.getValue() )
91+
.asList()
92+
.singleElement( InstanceOfAssertFactories.type( Property.class ) )
93+
.extracting( entityProperty -> entityProperty.getValue() )
94+
.isEqualTo( "The result" );
95+
} );
96+
} );
97+
} );
98+
}
99+
100+
@Test
101+
void generateAasxWithAspectDataForNestedEntityLists() throws IOException, DeserializationException {
102+
final Environment env = getAssetAdministrationShellFromAspectWithData( TestAspect.ASPECT_WITH_NESTED_ENTITY_LIST );
103+
assertThat( env.getSubmodels() )
104+
.singleElement()
105+
.satisfies( subModel -> {
106+
assertThat( subModel.getSubmodelElements() )
107+
.anySatisfy( sme -> {
108+
assertThat( sme ).asInstanceOf( InstanceOfAssertFactories.type( SubmodelElementList.class ) )
109+
.extracting( smel -> smel.getValue() )
110+
.asList()
111+
.anySatisfy( entity -> {
112+
assertThat( entity ).asInstanceOf( InstanceOfAssertFactories.type( SubmodelElementCollection.class ) )
113+
.extracting( smec -> smec.getValue() )
114+
.asList()
115+
.anySatisfy( property -> {
116+
assertThat( property ).asInstanceOf( InstanceOfAssertFactories.type( Property.class ) )
117+
.extracting( Property::getValue )
118+
.isEqualTo( "2.25" );
119+
} );
120+
} );
121+
} );
122+
} );
63123
}
64124

65125
@Test
@@ -269,8 +329,6 @@ private Environment getAssetAdministrationShellFromAspect( final TestAspect test
269329
throws DeserializationException, IOException {
270330
final Aspect aspect = loadAspect( testAspect );
271331
final ByteArrayOutputStream out = generator.generateXmlOutput( aspect );
272-
//final ByteArrayOutputStream out1 = generator.generateAasxOutput( aspect );
273-
//Files.write( Path.of( testAspect.getName() + ".aasx" ), out1.toByteArray() );
274332
return loadAASX( out, testAspect );
275333
}
276334

@@ -295,7 +353,6 @@ private Environment loadAASX( final ByteArrayOutputStream byteStream, final Test
295353
throws DeserializationException, IOException {
296354
final XmlDeserializer deserializer = new XmlDeserializer();
297355
final var data = byteStream.toByteArray();
298-
Files.write( Path.of( testAspect.getName() + ".xml" ), data );
299356
return deserializer.read( new ByteArrayInputStream( data ) );
300357
}
301358
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"myPropertyOne": {
3+
"entityPropertyOne": [
4+
{
5+
"entityPropertyTwo": "foo"
6+
}
7+
]
8+
}
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"testProperty": {
3+
"left": "left-value"
4+
}
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"testProperty": {
3+
"left": {
4+
"result": "The result"
5+
}
6+
}
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"prop": {
3+
"en": "This is English",
4+
"de": "Das ist Deutsch"
5+
}
6+
}

0 commit comments

Comments
 (0)