From 0efb8f5e081ec6246923439d5124cc97cddf8d8f Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 15 Jan 2021 16:09:07 +0100 Subject: [PATCH] Added assertion in junit test to properly test type update --- .../types/SchemaManagementImplTest.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/types/SchemaManagementImplTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/types/SchemaManagementImplTest.java index 8669c48..25f7f53 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/types/SchemaManagementImplTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/types/SchemaManagementImplTest.java @@ -4,6 +4,7 @@ package org.gcube.informationsystem.resourceregistry.types; import java.util.List; +import java.util.Map; import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.Element; @@ -31,6 +32,7 @@ import org.gcube.informationsystem.types.reference.entities.EntityType; import org.gcube.informationsystem.types.reference.properties.PropertyType; import org.gcube.informationsystem.types.reference.relations.RelationType; import org.gcube.informationsystem.utils.ElementMapper; +import org.gcube.informationsystem.utils.TypeVersion; import org.gcube.resourcemanagement.model.reference.entities.facets.AccessPointFacet; import org.gcube.resourcemanagement.model.reference.entities.facets.ContactFacet; import org.gcube.resourcemanagement.model.reference.entities.resources.Actor; @@ -39,6 +41,7 @@ import org.gcube.resourcemanagement.model.reference.entities.resources.RunningPl import org.gcube.resourcemanagement.model.reference.entities.resources.Service; import org.gcube.resourcemanagement.model.reference.properties.ValueSchema; import org.gcube.resourcemanagement.model.reference.relations.isrelatedto.Hosts; +import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -324,6 +327,30 @@ public class SchemaManagementImplTest extends ContextTest { } */ + private void compareTypes(Type type, Type typeManaged) { + Assert.assertTrue(type.getName().compareTo(typeManaged.getName())==0); + Assert.assertTrue(type.getVersion().compareTo(typeManaged.getVersion())==0); + Assert.assertTrue(type.getDescription().compareTo(typeManaged.getDescription())==0); + Assert.assertTrue(type.isAbstract() == typeManaged.isAbstract()); + + Assert.assertTrue(type.getSuperClasses().containsAll(typeManaged.getSuperClasses())); + Assert.assertTrue(typeManaged.getSuperClasses().containsAll(type.getSuperClasses())); + + + Map typeChangelog = type.getChangelog(); + Map typeManagedChangelog = typeManaged.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); + } + + Assert.assertTrue(type.getProperties().containsAll(typeManaged.getProperties())); + Assert.assertTrue(typeManaged.getProperties().containsAll(type.getProperties())); + } + @Test public void createUpdateDeleteFacetType() throws Exception { @@ -334,15 +361,21 @@ public class SchemaManagementImplTest extends ContextTest { SchemaManagement schemaManagement = new SchemaManagement(); Type type = TypeMapper.createTypeDefinition(c); schemaManagement.setTypeName(type.getName()); + + String ret = null; if(c == TestFacet.class) { logger.info("Going to create {} : {}", type.getName(), TypeMapper.serializeTypeDefinition(type)); - String ret = schemaManagement.create(TypeMapper.serializeTypeDefinition(type), AccessType.FACET); + ret = schemaManagement.create(TypeMapper.serializeTypeDefinition(type), AccessType.FACET); logger.info("Created {} : {}", type.getName(), ret); } else { logger.info("Going to update {} : {}", type.getName(), TypeMapper.serializeTypeDefinition(type)); - String ret = schemaManagement.update(TypeMapper.serializeTypeDefinition(type), AccessType.FACET); + ret = schemaManagement.update(TypeMapper.serializeTypeDefinition(type), AccessType.FACET); logger.info("Updated {} : {}", type.getName(), ret); } + + Type typeManaged = TypeMapper.deserializeTypeDefinition(ret); + + compareTypes(type, typeManaged); } SchemaManagement schemaManagement = new SchemaManagement(); @@ -352,6 +385,11 @@ public class SchemaManagementImplTest extends ContextTest { logger.info("Going to update {} : {}", type.getName(), TypeMapper.serializeTypeDefinition(type)); String ret = schemaManagement.update(TypeMapper.serializeTypeDefinition(type), AccessType.FACET); logger.info("Updated {} : {}", type.getName(), ret); + Type typeManaged = TypeMapper.deserializeTypeDefinition(ret); + + compareTypes(type, typeManaged); + + schemaManagement.setSkipVersionCheckOnUpdate(false); } catch (Exception e) { throw e;