Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe Commits: b2f727e2 by Tony Chemit at 2021-03-17T09:02:44+01:00 Improve node tests (do not any longer hard code node count, but compute it from business modules) - - - - - 529f80e2 by Tony Chemit at 2021-03-17T09:02:44+01:00 clean tag values - - - - - 12 changed files: - client/datasource/editor/api-test/pom.xml - client/datasource/editor/api-test/src/main/java/fr/ird/observe/client/datasource/editor/api/NavigationModelNodeTestSupport.java - client/datasource/editor/common/src/test/java/fr/ird/observe/client/datasource/editor/content/CommonNavigationModelNodeTest.java - client/datasource/editor/ll/src/test/java/fr/ird/observe/client/datasource/editor/ll/LlNavigationModelNodeTest.java - client/datasource/editor/ps/src/test/java/fr/ird/observe/client/datasource/editor/ps/PsNavigationTreeNodeTest.java - client/runner/src/test/java/fr/ird/observe/client/datasource/editor/content/AllNavigationModelNodeTest.java - models/dto/definition/src/main/models/Observe/dto/06-referential-ps-localmarket.model - models/dto/java/src/main/java/fr/ird/observe/spi/module/ObserveBusinessModule.java - models/persistence/definition/src/main/models/Observe/persistence/03-referential-ps-observation.model - models/persistence/definition/src/main/models/Observe/persistence/06-referential-ps-localmarket.model - models/persistence/definition/src/main/models/Observe/persistence/class/entity.properties - models/persistence/definition/src/main/models/Observe/persistence/package/entity.properties Changes: ===================================== client/datasource/editor/api-test/pom.xml ===================================== @@ -42,12 +42,21 @@ <artifactId>client-datasource-editor-api</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>models-dto-java</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>test</artifactId> <version>${project.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>io.ultreia.java4all</groupId> + <artifactId>java-lang</artifactId> + </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> ===================================== client/datasource/editor/api-test/src/main/java/fr/ird/observe/client/datasource/editor/api/NavigationModelNodeTestSupport.java ===================================== @@ -39,6 +39,8 @@ import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationSco import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationScopes; import fr.ird.observe.dto.data.DataDto; import fr.ird.observe.dto.reference.DataDtoReference; +import fr.ird.observe.spi.module.ObserveBusinessModule; +import io.ultreia.java4all.lang.Objects2; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Assert; @@ -55,22 +57,23 @@ import java.util.Set; public abstract class NavigationModelNodeTestSupport { private static final Logger log = LogManager.getLogger(NavigationModelNodeTestSupport.class); - protected final int expectedNodeCount; - protected final int expectedScopeCount; - protected final int expectedScopeBuilderCount = 8; + protected final int expectedCount; - protected NavigationModelNodeTestSupport(int expectedNodeCount) { - this.expectedNodeCount = expectedNodeCount; - this.expectedScopeCount = this.expectedNodeCount; + protected NavigationModelNodeTestSupport(ObserveBusinessModule... businessModule) { + int expectedCount = 1; // root node + for (ObserveBusinessModule module : businessModule) { + expectedCount += module.computeNodeCount(); + } + this.expectedCount = expectedCount; } @Test - public void loadNodes() throws IllegalAccessException, InstantiationException { + public void loadNodes() { Set<Class<? extends NavigationNode>> nodeTypes = NavigationNodes.get().getNodes(); log.info(String.format("Load %d node(s).", nodeTypes.size())); - Assert.assertEquals(expectedNodeCount, nodeTypes.size()); + Assert.assertEquals(expectedCount, nodeTypes.size()); for (Class<? extends NavigationNode> nodeType : nodeTypes) { - NavigationNode instance = nodeType.newInstance(); + NavigationNode instance = Objects2.newInstance(nodeType); Assert.assertNotNull(instance); } } @@ -79,7 +82,7 @@ public abstract class NavigationModelNodeTestSupport { public void loadScopes() { ImmutableMap<Class<? extends NavigationNode>, NavigationScope> scopes = NavigationScopes.get().getScopes(); log.info(String.format("Load %d scopes(s).", scopes.size())); - Assert.assertEquals(expectedScopeCount, scopes.size()); + Assert.assertEquals(expectedCount, scopes.size()); } protected void assertOpenableNode(ContentOpenableUINavigationNode node, Class<? extends DataDto> expectedDtoType, Class<? extends DataDtoReference> expectedReferenceType, Class<? extends ContentOpenableUI<?, ?>> expectedUiType) { @@ -105,8 +108,8 @@ public abstract class NavigationModelNodeTestSupport { Assert.assertEquals(node.getScope().getContentUiType(), expectedUiType); } - protected void assertTableNode(ContentTableUINavigationNode node, Class<? extends DataDto> expectedDtoDtpye, Class<? extends ContentTableUI<?, ?, ?>> expectedUiType) { - Assert.assertEquals(node.getScope().getNodeDataType(), expectedDtoDtpye); + protected void assertTableNode(ContentTableUINavigationNode node, Class<? extends DataDto> expectedDtoType, Class<? extends ContentTableUI<?, ?, ?>> expectedUiType) { + Assert.assertEquals(node.getScope().getNodeDataType(), expectedDtoType); Assert.assertEquals(node.getScope().getContentUiType(), expectedUiType); } } ===================================== client/datasource/editor/common/src/test/java/fr/ird/observe/client/datasource/editor/content/CommonNavigationModelNodeTest.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.client.datasource.editor.content; */ import fr.ird.observe.client.datasource.editor.api.NavigationModelNodeTestSupport; +import fr.ird.observe.spi.module.common.BusinessModule; /** * Created on 19/10/2020. @@ -33,7 +34,7 @@ import fr.ird.observe.client.datasource.editor.api.NavigationModelNodeTestSuppor public class CommonNavigationModelNodeTest extends NavigationModelNodeTestSupport { public CommonNavigationModelNodeTest() { - super(28 + 1); + super(BusinessModule.get()); } } ===================================== client/datasource/editor/ll/src/test/java/fr/ird/observe/client/datasource/editor/ll/LlNavigationModelNodeTest.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.client.datasource.editor.ll; */ import fr.ird.observe.client.datasource.editor.api.NavigationModelNodeTestSupport; +import fr.ird.observe.spi.module.ll.BusinessModule; import org.junit.Test; /** @@ -34,7 +35,7 @@ import org.junit.Test; public class LlNavigationModelNodeTest extends NavigationModelNodeTestSupport { public LlNavigationModelNodeTest() { - super(65 + 1); + super(BusinessModule.get()); } @Test ===================================== client/datasource/editor/ps/src/test/java/fr/ird/observe/client/datasource/editor/ps/PsNavigationTreeNodeTest.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.client.datasource.editor.ps; */ import fr.ird.observe.client.datasource.editor.api.NavigationModelNodeTestSupport; +import fr.ird.observe.spi.module.ps.BusinessModule; import org.junit.Test; /** @@ -34,7 +35,7 @@ import org.junit.Test; public class PsNavigationTreeNodeTest extends NavigationModelNodeTestSupport { public PsNavigationTreeNodeTest() { - super(51 + 1); + super(BusinessModule.get()); } @Test ===================================== client/runner/src/test/java/fr/ird/observe/client/datasource/editor/content/AllNavigationModelNodeTest.java ===================================== @@ -33,7 +33,11 @@ import fr.ird.observe.client.datasource.editor.api.NavigationModelNodeTestSuppor public class AllNavigationModelNodeTest extends NavigationModelNodeTestSupport { public AllNavigationModelNodeTest() { - super(1 + 28 + 51 + 65); + super( + fr.ird.observe.spi.module.common.BusinessModule.get(), + fr.ird.observe.spi.module.ps.BusinessModule.get(), + fr.ird.observe.spi.module.ll.BusinessModule.get() + ); } } ===================================== models/dto/definition/src/main/models/Observe/dto/06-referential-ps-localmarket.model ===================================== @@ -1,13 +1,13 @@ -package fr.ird.observe.dto.referential.ps.localmarket | form=self packagePriority=7 +package fr.ird.observe.dto.referential.ps.localmarket referential.ps.localmarket.BatchComposition > referential.I18nReferential referential.ps.localmarket.BatchWeightType > referential.I18nReferential -referential.ps.localmarket.Packaging > referential.I18nReferential >> WithStartEndDate | references=uri,code,label,batchComposition,batchWeightType,harbour,startDate,endDate -batchComposition {*:1} fr.ird.observe.dto.referential.ps.localmarket.BatchCompositionReference | notNull -batchWeightType {*:1} fr.ird.observe.dto.referential.ps.localmarket.BatchWeightTypeReference | notNull +referential.ps.localmarket.Packaging > referential.I18nReferential >> WithStartEndDate +batchComposition {*:1} fr.ird.observe.dto.referential.ps.localmarket.BatchCompositionReference +batchWeightType {*:1} fr.ird.observe.dto.referential.ps.localmarket.BatchWeightTypeReference startDate + {*:1} Date endDate + {*:1} Date meanWeight + {*:1} Float -harbour {*:0..1} fr.ird.observe.dto.referential.common.HarbourReference | notNull \ No newline at end of file +harbour {*:0..1} fr.ird.observe.dto.referential.common.HarbourReference \ No newline at end of file ===================================== models/dto/java/src/main/java/fr/ird/observe/spi/module/ObserveBusinessModule.java ===================================== @@ -22,10 +22,16 @@ package fr.ird.observe.spi.module; * #L% */ +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.dto.data.DataDto; +import fr.ird.observe.dto.data.ll.observation.BranchlineDto; +import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.common.GearType; import fr.ird.observe.dto.referential.common.ProgramReference; +import java.util.LinkedHashSet; import java.util.Objects; +import java.util.Set; /** * Created on 14/01/2021. @@ -46,4 +52,41 @@ public interface ObserveBusinessModule { default GearType getGearType() { return null; } + + default int computeNodeCount() { + int expectedNodeCount = 0; + for (BusinessSubModule subModule : ((BusinessModule)this).getSubModules()) { + ImmutableSet<Class<? extends ReferentialDto>> referentialTypes = subModule.getReferentialTypes(); + int tmp = expectedNodeCount; + int referentialSize = referentialTypes.size(); + if (referentialSize > 0) { + expectedNodeCount += 1 + referentialSize; // home referential + one for each referential type + } + tmp = expectedNodeCount; + Set<Class<? extends DataDto>> dataTypes = new LinkedHashSet<>(subModule.getDataTypes()); + + dataTypes.removeAll(subModule.getOpenableDataTypes()); + dataTypes.removeAll(subModule.getEditableDataTypes()); + dataTypes.removeAll(subModule.getSimpleDataTypes()); + dataTypes.removeAll(subModule.getContainerDataTypes()); + + dataTypes.removeIf(next -> !next.getSimpleName().endsWith("PartDto") && !next.getSimpleName().endsWith("CompositionDto")); + dataTypes.removeIf(next -> next.getSimpleName().endsWith("ObjectPartDto")); + int openableSize = subModule.getOpenableDataTypes().size(); + int editableSize = subModule.getEditableDataTypes().size(); + int simpleSize = subModule.getSimpleDataTypes().size(); + int containerSize = subModule.getContainerDataTypes().size(); + expectedNodeCount += 2 * openableSize; // list + open form + expectedNodeCount += editableSize; // edit form + expectedNodeCount += simpleSize; // simple form + expectedNodeCount += containerSize; // container form + expectedNodeCount += dataTypes.size(); // other forms + + if (subModule.getSimpleDataTypes().contains(BranchlineDto.class)) { + // the only simple data without form (should FIX this : dto should not be simple, but just normal...) + expectedNodeCount--; + } + } + return expectedNodeCount; + } } ===================================== models/persistence/definition/src/main/models/Observe/persistence/03-referential-ps-observation.model ===================================== @@ -4,7 +4,7 @@ enum !fr.ird.observe.dto.data.ps.NonTargetCatchReleaseStatus referential.ps.observation.DetectionMode > referential.I18nReferentialEntity -referential.ps.observation.InformationSource > referential.I18nReferentialEntity | entity +referential.ps.observation.InformationSource > referential.I18nReferentialEntity referential.ps.observation.NonTargetCatchReleaseConformity > referential.I18nReferentialEntity ===================================== models/persistence/definition/src/main/models/Observe/persistence/06-referential-ps-localmarket.model ===================================== @@ -1,14 +1,14 @@ -package fr.ird.observe.entities.referential.ps.localmarket | entity dbSchema=ps_localmarket +package fr.ird.observe.entities.referential.ps.localmarket -referential.ps.localmarket.BatchComposition > referential.I18nReferentialEntity | entity +referential.ps.localmarket.BatchComposition > referential.I18nReferentialEntity -referential.ps.localmarket.BatchWeightType > referential.I18nReferentialEntity | entity +referential.ps.localmarket.BatchWeightType > referential.I18nReferentialEntity -referential.ps.localmarket.Packaging > referential.I18nReferentialEntity >> fr.ird.observe.dto.WithStartEndDate | entity +referential.ps.localmarket.Packaging > referential.I18nReferentialEntity >> fr.ird.observe.dto.WithStartEndDate batchComposition {*:1} referential.ps.localmarket.BatchComposition batchWeightType {*:1} referential.ps.localmarket.BatchWeightType startDate + {*:1} Date endDate + {*:1} Date -meanWeight + {*:1} Float | sqlType=numeric digits=4 +meanWeight + {*:1} Float harbour {*:0..1} referential.common.Harbour acceptHarbour(harbour referential.common.Harbour) boolean \ No newline at end of file ===================================== models/persistence/definition/src/main/models/Observe/persistence/class/entity.properties ===================================== @@ -22,13 +22,3 @@ Entity=true LastUpdateDate=true data.DataEntity=true -referential.ps.landing.Fate=true -referential.ps.landing.WeightCategory=true -referential.ps.localmarket.BatchComposition=true -referential.ps.localmarket.BatchWeightType=true -referential.ps.localmarket.Packaging=true -referential.ps.logbook.SampleQuality=true -referential.ps.logbook.SampleType=true -referential.ps.logbook.WeightCategory=true -referential.ps.logbook.WellsState=true -referential.ps.observation.InformationSource=true ===================================== models/persistence/definition/src/main/models/Observe/persistence/package/entity.properties ===================================== @@ -22,5 +22,3 @@ data.ll=true data.ps=true referential=true -referential.ps.landing=true -referential.ps.localmarket=true View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fcefee318552b4fe5c7f03ced... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fcefee318552b4fe5c7f03ced... You're receiving this email because of your account on gitlab.com.