Skip to content

Commit 4d31268

Browse files
committed
[1945] Add ends compartment on AllocationDef an ConnectionDef graphical nodes
Bug: #1945 Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
1 parent 8978a9c commit 4d31268

File tree

16 files changed

+309
-146
lines changed

16 files changed

+309
-146
lines changed

CHANGELOG.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Publishing a project that contains representations now produces libraries that a
5454
- https://github.com/eclipse-syson/syson/issues/1970[#1970] [export] Implement textual export of `AllocationUsage` and `AllocationDefinition`.
5555
- https://github.com/eclipse-syson/syson/issues/1948[#1948] [diagrams] Add _New Satisfy_ tool on `RequirementUsage` graphical nodes. This tool allows to create a `SatisfyRequirementUsage` on the selected `RequirementUsage`.
5656
Also add a _New Satisfy Requirement_ graphical edge tool between `Feature` graphical nodes and `RequirementUsage` graphical nodes.
57+
- https://github.com/eclipse-syson/syson/issues/1945[#1945] [diagrams] Add ends compartment on `AllocationDefinition` and `ConnectionDefinition` graphical nodes
5758

5859
=== New features
5960

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/checkers/DiagramCheckerService.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,31 @@ public DiagramCheckerService(DiagramComparator diagramComparator, IDescriptionNa
6363
*/
6464
public Consumer<Object> childNodeGraphicalChecker(AtomicReference<Diagram> previousDiagram, DiagramDescriptionIdProvider diagramDescriptionIdProvider, String parentLabel, EClass childEClass,
6565
int compartmentCount) {
66+
return this.childNodeGraphicalChecker(previousDiagram, diagramDescriptionIdProvider, parentLabel, childEClass, compartmentCount, compartmentCount + 1);
67+
}
68+
69+
/**
70+
* Returns a consumer that checks a child node was created on the diagram.
71+
*
72+
* @param previousDiagram
73+
* the reference to the previous diagram state
74+
* @param diagramDescriptionIdProvider
75+
* the provider for diagram description IDs
76+
* @param parentLabel
77+
* the label of the parent node
78+
* @param childEClass
79+
* the EClass of the expected child node
80+
* @param compartmentCount
81+
* the expected number of compartments
82+
* @param newNodesCount
83+
* the expected total number of new nodes
84+
* @return a consumer that performs the graphical check
85+
*/
86+
public Consumer<Object> childNodeGraphicalChecker(AtomicReference<Diagram> previousDiagram, DiagramDescriptionIdProvider diagramDescriptionIdProvider, String parentLabel, EClass childEClass,
87+
int compartmentCount, int newNodesCount) {
6688
return assertRefreshedDiagramThat(newDiagram -> {
67-
int createdNodesExpectedCount = 1 + compartmentCount;
6889
new CheckDiagramElementCount(this.diagramComparator)
69-
.hasNewNodeCount(createdNodesExpectedCount)
90+
.hasNewNodeCount(newNodesCount)
7091
.hasNewEdgeCount(0)
7192
.check(previousDiagram.get(), newDiagram);
7293

@@ -199,6 +220,7 @@ public void checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram
199220
* @deprecated this function will be removed when all the tests will be migrated to follow the same format as Sirius Web.
200221
* Please, directly use the consumer returned by the other functions of this class into your {@link reactor.test.StepVerifier} instead.
201222
*/
223+
@Deprecated
202224
public Consumer<Object> checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram> previousDiagram) {
203225
return object -> Optional.of(object)
204226
.filter(DiagramRefreshedEventPayload.class::isInstance)

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVAddNewFeatureTypingFromPartUsageTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public void setUp() {
113113
private static Stream<Arguments> partUsageNodeParameters() {
114114
return Stream.of(
115115
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), "part1", 11),
116-
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), "allocation1", 4),
116+
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), "allocation1", 6),
117117
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), "interface1", 6));
118118
}
119119

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVSubNodeStructureCreationTests.java

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -195,41 +195,42 @@ private static Stream<Arguments> itemUsageBorderAndChildNodeParameters() {
195195
private static Stream<Arguments> packageChildNodeParameters() {
196196
EReference ownedMember = SysmlPackage.eINSTANCE.getNamespace_OwnedMember();
197197
return Stream.of(
198-
Arguments.of(SysmlPackage.eINSTANCE.getAttributeDefinition(), ownedMember, 2),
199-
Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), ownedMember, 3),
200-
Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), ownedMember, 4),
201-
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), ownedMember, 3),
202-
Arguments.of(SysmlPackage.eINSTANCE.getActionDefinition(), ownedMember, 6),
203-
Arguments.of(SysmlPackage.eINSTANCE.getAcceptActionUsage(), ownedMember, 2),
204-
Arguments.of(SysmlPackage.eINSTANCE.getActionUsage(), ownedMember, 7),
205-
Arguments.of(SysmlPackage.eINSTANCE.getAssignmentActionUsage(), ownedMember, 1),
206-
Arguments.of(SysmlPackage.eINSTANCE.getConcernDefinition(), ownedMember, 8),
207-
Arguments.of(SysmlPackage.eINSTANCE.getConcernUsage(), ownedMember, 8),
208-
Arguments.of(SysmlPackage.eINSTANCE.getConstraintDefinition(), ownedMember, 2),
209-
Arguments.of(SysmlPackage.eINSTANCE.getConstraintUsage(), ownedMember, 4),
210-
Arguments.of(SysmlPackage.eINSTANCE.getEnumerationDefinition(), ownedMember, 2),
211-
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceDefinition(), ownedMember, 6),
212-
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), ownedMember, 4),
213-
Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), ownedMember, 2),
214-
Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), ownedMember, 4),
215-
Arguments.of(SysmlPackage.eINSTANCE.getMetadataDefinition(), ownedMember, 3),
216-
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceDefinition(), ownedMember, 3),
217-
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceUsage(), ownedMember, 2),
198+
Arguments.of(SysmlPackage.eINSTANCE.getAttributeDefinition(), ownedMember, 2, 0),
199+
Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), ownedMember, 3, 0),
200+
Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), ownedMember, 4, 2),
201+
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), ownedMember, 3, 0),
202+
Arguments.of(SysmlPackage.eINSTANCE.getActionDefinition(), ownedMember, 6, 0),
203+
Arguments.of(SysmlPackage.eINSTANCE.getAcceptActionUsage(), ownedMember, 2, 0),
204+
Arguments.of(SysmlPackage.eINSTANCE.getActionUsage(), ownedMember, 7, 0),
205+
Arguments.of(SysmlPackage.eINSTANCE.getAssignmentActionUsage(), ownedMember, 1, 0),
206+
Arguments.of(SysmlPackage.eINSTANCE.getConcernDefinition(), ownedMember, 8, 0),
207+
Arguments.of(SysmlPackage.eINSTANCE.getConcernUsage(), ownedMember, 8, 0),
208+
Arguments.of(SysmlPackage.eINSTANCE.getConstraintDefinition(), ownedMember, 2, 0),
209+
Arguments.of(SysmlPackage.eINSTANCE.getConstraintUsage(), ownedMember, 4, 0),
210+
Arguments.of(SysmlPackage.eINSTANCE.getEnumerationDefinition(), ownedMember, 2, 0),
211+
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceDefinition(), ownedMember, 6, 0),
212+
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), ownedMember, 4, 0),
213+
Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), ownedMember, 2, 0),
214+
Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), ownedMember, 4, 0),
215+
Arguments.of(SysmlPackage.eINSTANCE.getMetadataDefinition(), ownedMember, 3, 0),
216+
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceDefinition(), ownedMember, 3, 0),
217+
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceUsage(), ownedMember, 2, 0),
218218
// A package doesn't have a compartment: it is handled as a custom node
219-
Arguments.of(SysmlPackage.eINSTANCE.getPackage(), ownedMember, 0),
220-
Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 11),
221-
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 11),
222-
Arguments.of(SysmlPackage.eINSTANCE.getPortDefinition(), ownedMember, 5),
223-
Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), ownedMember, 5),
224-
Arguments.of(SysmlPackage.eINSTANCE.getRequirementDefinition(), ownedMember, 8),
225-
Arguments.of(SysmlPackage.eINSTANCE.getRequirementUsage(), ownedMember, 8),
226-
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseDefinition(), ownedMember, 5),
227-
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseUsage(), ownedMember, 7),
228-
Arguments.of(SysmlPackage.eINSTANCE.getSatisfyRequirementUsage(), ownedMember, 8),
229-
Arguments.of(SysmlPackage.eINSTANCE.getStateDefinition(), ownedMember, 6),
230-
Arguments.of(SysmlPackage.eINSTANCE.getStateUsage(), ownedMember, 6),
231-
Arguments.of(SysmlPackage.eINSTANCE.getNamespaceImport(), SysmlPackage.eINSTANCE.getNamespace_OwnedImport(), 0))
232-
.map(TestNameGenerator::namedArguments);
219+
Arguments.of(SysmlPackage.eINSTANCE.getPackage(), ownedMember, 0, 0),
220+
Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 11, 0),
221+
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 11, 0),
222+
Arguments.of(SysmlPackage.eINSTANCE.getPortDefinition(), ownedMember, 5, 0),
223+
Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), ownedMember, 5, 0),
224+
Arguments.of(SysmlPackage.eINSTANCE.getRequirementDefinition(), ownedMember, 8, 0),
225+
Arguments.of(SysmlPackage.eINSTANCE.getRequirementUsage(), ownedMember, 8, 0),
226+
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseDefinition(), ownedMember, 5, 0),
227+
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseUsage(), ownedMember, 7, 0),
228+
Arguments.of(SysmlPackage.eINSTANCE.getSatisfyRequirementUsage(), ownedMember, 8, 0),
229+
Arguments.of(SysmlPackage.eINSTANCE.getStateDefinition(), ownedMember, 6, 0),
230+
Arguments.of(SysmlPackage.eINSTANCE.getStateUsage(), ownedMember, 6, 0),
231+
Arguments.of(SysmlPackage.eINSTANCE.getNamespaceImport(), SysmlPackage.eINSTANCE.getNamespace_OwnedImport(), 0,
232+
0)
233+
).map(TestNameGenerator::namedArguments);
233234
}
234235

235236
private static Stream<Arguments> partDefinitionChildNodeParameters() {
@@ -701,7 +702,7 @@ public void createItemUsageBorderAndChildNodes(EClass childEClass, String compar
701702
@GivenSysONServer({ GeneralViewWithTopNodesTestProjectData.SCRIPT_PATH })
702703
@ParameterizedTest
703704
@MethodSource("packageChildNodeParameters")
704-
public void createPackageChildNodes(EClass childEClass, EReference containmentReference, int compartmentCount) {
705+
public void createPackageChildNodes(EClass childEClass, EReference containmentReference, int compartmentCount, int additionalNodesCount) {
705706
var flux = this.givenSubscriptionToDiagram();
706707

707708
var diagramDescription = this.givenDiagramDescription.getDiagramDescription(GeneralViewWithTopNodesTestProjectData.EDITING_CONTEXT_ID,
@@ -721,7 +722,8 @@ public void createPackageChildNodes(EClass childEClass, EReference containmentRe
721722
List<ToolVariable> finalVariables = variables;
722723
Runnable createNodeRunnable = this.creationTestsService.createNode(diagramDescriptionIdProvider, diagram, parentEClass, parentLabel, childEClass, finalVariables);
723724

724-
Consumer<Object> diagramChecker = this.diagramCheckerService.childNodeGraphicalChecker(diagram, diagramDescriptionIdProvider, parentLabel, childEClass, compartmentCount);
725+
Consumer<Object> diagramChecker = this.diagramCheckerService.childNodeGraphicalChecker(diagram, diagramDescriptionIdProvider, parentLabel, childEClass, compartmentCount,
726+
1 + compartmentCount + additionalNodesCount);
725727

726728
Runnable semanticChecker = this.semanticCheckerService.checkEditingContext(this.semanticCheckerService.getElementInParentSemanticChecker(parentLabel, containmentReference, childEClass));
727729

0 commit comments

Comments
 (0)