From 71a2952fc5b3d5b5c19093015892c66a84a53139 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 1 Feb 2021 09:21:58 +0100 Subject: [PATCH] Improved test --- .../model/ISMDiscoveryTest.java | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java b/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java index fe535c5..3f6cb9d 100644 --- a/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java +++ b/src/test/java/org/gcube/resourcemanagement/model/ISMDiscoveryTest.java @@ -2,6 +2,7 @@ package org.gcube.resourcemanagement.model; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.ServiceLoader; import org.gcube.informationsystem.base.reference.AccessType; @@ -11,6 +12,7 @@ import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.relations.RelationElement; import org.gcube.informationsystem.types.TypeMapper; import org.gcube.informationsystem.types.reference.Type; +import org.gcube.informationsystem.utils.TypeVersion; import org.gcube.informationsystem.utils.discovery.ElementSpecilizationDiscovery; import org.gcube.informationsystem.utils.discovery.RegistrationProvider; import org.gcube.informationsystem.utils.discovery.SchemaAction; @@ -26,6 +28,33 @@ public class ISMDiscoveryTest { private static final Logger logger = LoggerFactory.getLogger(ISMDiscoveryTest.class); + + private void checkType(Type type, Type expected) { + Assert.assertTrue(type.getName().compareTo(expected.getName())==0); + Assert.assertTrue(type.getVersion().compareTo(expected.getVersion())==0); + Assert.assertTrue(type.getDescription().compareTo(expected.getDescription())==0); + Assert.assertTrue(type.isAbstract() == expected.isAbstract()); + + Assert.assertTrue(type.getSuperClasses().containsAll(expected.getSuperClasses())); + Assert.assertTrue(expected.getSuperClasses().containsAll(type.getSuperClasses())); + + + Map typeChangelog = type.getChangelog(); + Map typeManagedChangelog = expected.getChangelog(); + + Assert.assertTrue(typeChangelog.keySet().containsAll(typeManagedChangelog.keySet())); + Assert.assertTrue(typeManagedChangelog.keySet().containsAll(typeChangelog.keySet())); + + for(TypeVersion typeVersion : typeChangelog.keySet()) { + Assert.assertTrue(typeChangelog.get(typeVersion).compareTo(typeManagedChangelog.get(typeVersion))==0); + } + + if(type.getProperties()!=null || expected.getProperties()!=null) { + Assert.assertTrue(type.getProperties().containsAll(expected.getProperties())); + Assert.assertTrue(expected.getProperties().containsAll(type.getProperties())); + } + } + @Test public void test() throws Exception { @@ -56,7 +85,12 @@ public class ISMDiscoveryTest { } Type type = TypeMapper.createTypeDefinition(r); Assert.assertTrue(type.getName().compareTo(r.getSimpleName())==0); - logger.debug("{} {}", r.getSimpleName(), TypeMapper.serializeTypeDefinition(type)); + + String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); + logger.debug("{} {}", r.getSimpleName(), typeDefinitionString); + + Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); + checkType(type, deserilised); } @Override @@ -66,7 +100,13 @@ public class ISMDiscoveryTest { } Type type = TypeMapper.createTypeDefinition(p); Assert.assertTrue(type.getName().compareTo(p.getSimpleName())==0); - logger.debug("{} {}", p.getSimpleName(), TypeMapper.serializeTypeDefinition(type)); + + String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); + logger.debug("{} {}", p.getSimpleName(), typeDefinitionString); + + Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); + + checkType(type, deserilised); } @Override @@ -76,7 +116,13 @@ public class ISMDiscoveryTest { } Type type = TypeMapper.createTypeDefinition(e); Assert.assertTrue(type.getName().compareTo(e.getSimpleName())==0); - logger.debug("{} {}", e.getSimpleName(), TypeMapper.serializeTypeDefinition(type)); + + String typeDefinitionString = TypeMapper.serializeTypeDefinition(type); + logger.debug("{} {}", e.getSimpleName(), typeDefinitionString); + + Type deserilised = TypeMapper.deserializeTypeDefinition(typeDefinitionString); + + checkType(type, deserilised); } };