Skip to content
This repository was archived by the owner on Feb 15, 2024. It is now read-only.

Commit a83f389

Browse files
committed
Use common test classes in dataformat-uanodeset
- AASSimple in dataformat-core replaced with updated AASSimple from uanodeset - uanodeset now uses AASSimple and AASFull from dataformat-core - Adds assets to AASEnv in xml- and json- serializer
1 parent 19ca9b2 commit a83f389

File tree

12 files changed

+346
-2324
lines changed

12 files changed

+346
-2324
lines changed

dataformat-core/src/test/java/io/adminshell/aas/v3/dataformat/core/AASSimple.java

Lines changed: 266 additions & 332 deletions
Large diffs are not rendered by default.

dataformat-json/src/test/resources/jsonExample.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"keys": [
6464
{
6565
"type": "Submodel",
66-
"value": "http.//i40.customer.com/type/1/1/7A7104BDAB57E184",
66+
"value": "http://i40.customer.com/type/1/1/7A7104BDAB57E184",
6767
"idType": "Iri"
6868
}
6969
]
@@ -89,6 +89,18 @@
8989
]
9090
}
9191
],
92+
"assets": [
93+
{
94+
"modelType": {
95+
"name": "Asset"
96+
},
97+
"idShort": "ServoDCMotor",
98+
"identification": {
99+
"idType": "Iri",
100+
"id": "http://customer.com/assets/KHBVZJSQKIY"
101+
}
102+
}
103+
],
92104
"submodels": [
93105
{
94106
"modelType": {

dataformat-uanodeset/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@
2626
<artifactId>dataformat-core</artifactId>
2727
<version>${revision}</version>
2828
</dependency>
29+
<dependency>
30+
<groupId>io.admin-shell.aas</groupId>
31+
<artifactId>dataformat-core</artifactId>
32+
<version>${revision}</version>
33+
<classifier>tests</classifier>
34+
<scope>test</scope>
35+
</dependency>
2936
<dependency>
3037
<groupId>org.slf4j</groupId>
3138
<artifactId>slf4j-api</artifactId>

dataformat-uanodeset/src/test/java/io/adminshell/aas/v3/dataformat/i4aas/AASFull.java

Lines changed: 0 additions & 1630 deletions
This file was deleted.

dataformat-uanodeset/src/test/java/io/adminshell/aas/v3/dataformat/i4aas/AASSimple.java

Lines changed: 0 additions & 352 deletions
This file was deleted.

dataformat-uanodeset/src/test/java/io/adminshell/aas/v3/dataformat/i4aas/IntegrationTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import io.adminshell.aas.v3.dataformat.DeserializationException;
2626
import io.adminshell.aas.v3.dataformat.SerializationException;
27+
import io.adminshell.aas.v3.dataformat.core.AASFull;
2728
import io.adminshell.aas.v3.dataformat.i4aas.mappers.MappingContext;
2829
import io.adminshell.aas.v3.model.Asset;
2930
import io.adminshell.aas.v3.model.AssetAdministrationShell;

dataformat-uanodeset/src/test/java/io/adminshell/aas/v3/dataformat/i4aas/SerializerTest.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,19 @@
1616
package io.adminshell.aas.v3.dataformat.i4aas;
1717

1818
import java.io.IOException;
19+
import java.lang.reflect.Field;
1920
import java.nio.file.Files;
2021
import java.nio.file.Path;
22+
import java.util.ArrayList;
23+
import java.util.List;
2124

2225
import org.junit.Assert;
2326
import org.junit.BeforeClass;
2427
import org.junit.Test;
2528

2629
import io.adminshell.aas.v3.dataformat.SerializationException;
30+
import io.adminshell.aas.v3.dataformat.core.AASFull;
31+
import io.adminshell.aas.v3.dataformat.core.AASSimple;
2732
import io.adminshell.aas.v3.dataformat.i4aas.mappers.MappingContext;
2833
import io.adminshell.aas.v3.model.impl.DefaultAssetAdministrationShellEnvironment;
2934

@@ -38,14 +43,13 @@ public static void before() {
3843
public void testEmpty() throws SerializationException {
3944
I4AASSerializer i4aasSerializer = new I4AASSerializer();
4045
String write = i4aasSerializer.write(new DefaultAssetAdministrationShellEnvironment());
41-
//System.out.println(write);
4246
}
4347

4448
@Test
4549
public void testSimple() throws SerializationException, IllegalArgumentException, IllegalAccessException {
4650
I4AASSerializer i4aasSerializer = new I4AASSerializer();
4751
String write = i4aasSerializer.write(AASSimple.ENVIRONMENT);
48-
for (String toCheck : AASSimple.getContainedStrings()) {
52+
for (String toCheck : getContainedStrings(AASSimple.class)) {
4953
if (toCheck.toLowerCase().contains("thumbnail")) {
5054
//gets remapped to DefaultThumbnail
5155
toCheck = "DefaultThumbnail";
@@ -64,14 +68,23 @@ public void testSimpleToFile() throws SerializationException, IOException {
6468
Path createTempFile = Files.createTempFile("testSimpleToFile", ".xml");
6569
I4AASSerializer i4aasSerializer = new I4AASSerializer();
6670
i4aasSerializer.write(createTempFile.toFile(), AASSimple.ENVIRONMENT);
67-
//System.out.println(createTempFile.toAbsolutePath().toString());
6871
}
6972

7073
@Test
7174
public void testFull() throws SerializationException {
7275
I4AASSerializer i4aasSerializer = new I4AASSerializer();
7376
String write = i4aasSerializer.write(AASFull.ENVIRONMENT);
74-
//System.out.println(write);
7577
}
7678

79+
private static List<String> getContainedStrings(Class<?> testModelClass) throws IllegalArgumentException, IllegalAccessException {
80+
List<String> results = new ArrayList<>();
81+
for (Field field : AASSimple.class.getDeclaredFields()) {
82+
field.setAccessible(true);
83+
if (field.getType() == String.class) {
84+
Object object = field.get(null);
85+
results.add((String) object);
86+
}
87+
}
88+
return results;
89+
}
7790
}

dataformat-uanodeset/src/test/java/io/adminshell/aas/v3/dataformat/i4aas/mappers/SubmodelMapperTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,13 @@
1515
*/
1616
package io.adminshell.aas.v3.dataformat.i4aas.mappers;
1717

18-
1918
import javax.xml.bind.JAXBException;
2019

2120
import org.junit.Test;
2221
import org.opcfoundation.ua._2011._03.uanodeset.UANodeSet;
2322
import org.opcfoundation.ua._2011._03.uanodeset.UAObject;
2423

25-
import io.adminshell.aas.v3.dataformat.i4aas.AASSimple;
24+
import io.adminshell.aas.v3.dataformat.core.AASSimple;
2625
import io.adminshell.aas.v3.dataformat.i4aas.UANodeSetMarshaller;
2726
import io.adminshell.aas.v3.model.impl.DefaultAssetAdministrationShellEnvironment;
2827

dataformat-xml/src/main/java/io/adminshell/aas/v3/dataformat/xml/serialization/AssetAdministrationShellEnvironmentSerializer.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
3131

3232
import io.adminshell.aas.v3.dataformat.xml.AasXmlNamespaceContext;
33+
import io.adminshell.aas.v3.model.Asset;
3334
import io.adminshell.aas.v3.model.AssetAdministrationShell;
3435
import io.adminshell.aas.v3.model.AssetAdministrationShellEnvironment;
3536
import io.adminshell.aas.v3.model.ConceptDescription;
@@ -47,6 +48,8 @@ public class AssetAdministrationShellEnvironmentSerializer extends JsonSerialize
4748
private static final QName CONCEPTDICTIONARY_TAGNAME = new QName(AasXmlNamespaceContext.AAS_URI, "conceptDescription");
4849
private static final QName SUBMODELLIST_TAGNAME = new QName(AasXmlNamespaceContext.AAS_URI, "submodels");
4950
private static final QName SUBMODEL_TAGNAME = new QName(AasXmlNamespaceContext.AAS_URI, "submodel");
51+
private static final QName ASSETLIST_TAGNAME = new QName(AasXmlNamespaceContext.AAS_URI, "assets");
52+
private static final QName ASSET_TAGNAME = new QName(AasXmlNamespaceContext.AAS_URI, "asset");
5053

5154
private Map<String, String> namespacePrefixes;
5255

@@ -94,10 +97,18 @@ private void writeOpeningTag(ToXmlGenerator xgen, XMLStreamWriter streamWriter)
9497

9598
private void writeContent(AssetAdministrationShellEnvironment value, ToXmlGenerator xgen) throws IOException {
9699
writeAssetAdministrationShells(xgen, value.getAssetAdministrationShells());
100+
writeAssets(xgen, value.getAssets());
97101
writeConceptDescriptions(xgen, value.getConceptDescriptions());
98102
writeSubmodels(xgen, value.getSubmodels());
99103
}
100104

105+
private void writeAssets(ToXmlGenerator xgen, List<Asset> assets) throws IOException {
106+
if (assets.isEmpty()) {
107+
return;
108+
}
109+
writeWrappedArray(xgen, ASSETLIST_TAGNAME, ASSET_TAGNAME, assets);
110+
}
111+
101112
private void writeAssetAdministrationShells(ToXmlGenerator xgen, List<AssetAdministrationShell> aasList)
102113
throws IOException {
103114
if (aasList.isEmpty()) {

dataformat-xml/src/main/resources/AAS.xsd

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<complexType name="aasenv_t">
2626
<sequence>
2727
<element maxOccurs="1" minOccurs="0" name="assetAdministrationShells" type="aas:assetAdministrationShells_t"/>
28-
<!--<element maxOccurs="1" minOccurs="0" name="assets" type="aas:assets_t"/>-->
28+
<element maxOccurs="1" minOccurs="0" name="assets" type="aas:assets_t"/>
2929
<element maxOccurs="1" minOccurs="0" name="conceptDescriptions" type="aas:conceptDescriptions_t"/>
3030
<element maxOccurs="1" minOccurs="0" name="submodels" type="aas:submodels_t"/>
3131
</sequence>
@@ -45,6 +45,12 @@
4545
</extension>
4646
</complexContent>
4747
</complexType>
48+
<complexType name="asset_t">
49+
<sequence>
50+
<group ref="aas:identifiable"/>
51+
<group ref="aas:hasDataSpecification"/>
52+
</sequence>
53+
</complexType>
4854
<complexType name="assetAdministrationShell_t">
4955
<sequence>
5056
<group ref="aas:identifiable"/>
@@ -75,6 +81,11 @@
7581
<element maxOccurs="unbounded" minOccurs="0" name="specificAssetId" type="aas:identifierKeyValuePair_t"/>
7682
</sequence>
7783
</complexType>
84+
<complexType name="assets_t">
85+
<sequence>
86+
<element maxOccurs="unbounded" minOccurs="0" name="asset" type="aas:asset_t"/>
87+
</sequence>
88+
</complexType>
7889
<complexType name="basicEvent_t">
7990
<complexContent>
8091
<extension base="aas:eventAbstract_t">

0 commit comments

Comments
 (0)