Skip to content

Commit b10d28c

Browse files
committed
[1945] Add ends compartment on AllocationDef an ConnectionDef graphical nodes
Bug: #1945 Signed-off-by: Pierre-Charles David <[email protected]>
1 parent df413f8 commit b10d28c

File tree

16 files changed

+294
-148
lines changed

16 files changed

+294
-148
lines changed

CHANGELOG.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ Also add a _New Satisfy Requirement_ graphical edge tool between `Feature` grap
6363
As a result, the application won't start if a service call is constructed with an invalid number of arguments.
6464
- https://github.com/eclipse-syson/syson/issues/1988[#1988] [syson] Extract Elasticsearch container initialization in a dedicated abstract test class.
6565
Integration tests that require Elasticsearch now need to extend `AbstractIntegrationTestsWithElasticsearch`.
66+
- https://github.com/eclipse-syson/syson/issues/1945[#1945] [diagrams] Add ends compartment on `AllocationDefinition` and `ConnectionDefinition` graphical nodes
67+
Newly created `AllocationDefinition` and `ConnectionDefinition` graphical nodes now have two initial _connection ends_, named `source` and `target`.
68+
Additional ends can be created using the _New end_ tool (which replaces the _New Part as end_ previously available only on `AllocationDefinition` graphical nodes).
6669

6770
=== New features
6871

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,15 @@ public DiagramCheckerService(DiagramComparator diagramComparator, IDescriptionNa
5959
* the EClass of the expected child node
6060
* @param compartmentCount
6161
* the expected number of compartments
62+
* @param newNodesCount
63+
* the expected total number of new nodes
6264
* @return a consumer that performs the graphical check
6365
*/
6466
public Consumer<Object> childNodeGraphicalChecker(AtomicReference<Diagram> previousDiagram, DiagramDescriptionIdProvider diagramDescriptionIdProvider, String parentLabel, EClass childEClass,
65-
int compartmentCount) {
67+
int compartmentCount, int newNodesCount) {
6668
return assertRefreshedDiagramThat(newDiagram -> {
67-
int createdNodesExpectedCount = 1 + compartmentCount;
6869
new CheckDiagramElementCount(this.diagramComparator)
69-
.hasNewNodeCount(createdNodesExpectedCount)
70+
.hasNewNodeCount(newNodesCount)
7071
.hasNewEdgeCount(0)
7172
.check(previousDiagram.get(), newDiagram);
7273

@@ -199,6 +200,7 @@ public void checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram
199200
* @deprecated this function will be removed when all the tests will be migrated to follow the same format as Sirius Web.
200201
* Please, directly use the consumer returned by the other functions of this class into your {@link reactor.test.StepVerifier} instead.
201202
*/
203+
@Deprecated
202204
public Consumer<Object> checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram> previousDiagram) {
203205
return object -> Optional.of(object)
204206
.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)