Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

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

=== New features

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,15 @@ public DiagramCheckerService(DiagramComparator diagramComparator, IDescriptionNa
* the EClass of the expected child node
* @param compartmentCount
* the expected number of compartments
* @param newNodesCount
* the expected total number of new nodes
* @return a consumer that performs the graphical check
*/
public Consumer<Object> childNodeGraphicalChecker(AtomicReference<Diagram> previousDiagram, DiagramDescriptionIdProvider diagramDescriptionIdProvider, String parentLabel, EClass childEClass,
int compartmentCount) {
int compartmentCount, int newNodesCount) {
return assertRefreshedDiagramThat(newDiagram -> {
int createdNodesExpectedCount = 1 + compartmentCount;
new CheckDiagramElementCount(this.diagramComparator)
.hasNewNodeCount(createdNodesExpectedCount)
.hasNewNodeCount(newNodesCount)
.hasNewEdgeCount(0)
.check(previousDiagram.get(), newDiagram);

Expand Down Expand Up @@ -199,6 +200,7 @@ public void checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram
* @deprecated this function will be removed when all the tests will be migrated to follow the same format as Sirius Web.
* Please, directly use the consumer returned by the other functions of this class into your {@link reactor.test.StepVerifier} instead.
*/
@Deprecated
public Consumer<Object> checkDiagram(IDiagramChecker diagramChecker, AtomicReference<Diagram> previousDiagram) {
return object -> Optional.of(object)
.filter(DiagramRefreshedEventPayload.class::isInstance)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ public void setUp() {
private static Stream<Arguments> partUsageNodeParameters() {
return Stream.of(
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), "part1", 11),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), "allocation1", 4),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), "allocation1", 6),
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), "interface1", 6));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,41 +195,42 @@ private static Stream<Arguments> itemUsageBorderAndChildNodeParameters() {
private static Stream<Arguments> packageChildNodeParameters() {
EReference ownedMember = SysmlPackage.eINSTANCE.getNamespace_OwnedMember();
return Stream.of(
Arguments.of(SysmlPackage.eINSTANCE.getAttributeDefinition(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), ownedMember, 3),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), ownedMember, 4),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), ownedMember, 3),
Arguments.of(SysmlPackage.eINSTANCE.getActionDefinition(), ownedMember, 6),
Arguments.of(SysmlPackage.eINSTANCE.getAcceptActionUsage(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getActionUsage(), ownedMember, 7),
Arguments.of(SysmlPackage.eINSTANCE.getAssignmentActionUsage(), ownedMember, 1),
Arguments.of(SysmlPackage.eINSTANCE.getConcernDefinition(), ownedMember, 8),
Arguments.of(SysmlPackage.eINSTANCE.getConcernUsage(), ownedMember, 8),
Arguments.of(SysmlPackage.eINSTANCE.getConstraintDefinition(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getConstraintUsage(), ownedMember, 4),
Arguments.of(SysmlPackage.eINSTANCE.getEnumerationDefinition(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceDefinition(), ownedMember, 6),
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), ownedMember, 4),
Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), ownedMember, 4),
Arguments.of(SysmlPackage.eINSTANCE.getMetadataDefinition(), ownedMember, 3),
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceDefinition(), ownedMember, 3),
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceUsage(), ownedMember, 2),
Arguments.of(SysmlPackage.eINSTANCE.getAttributeDefinition(), ownedMember, 2, 0),
Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), ownedMember, 3, 0),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), ownedMember, 4, 2),
Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), ownedMember, 3, 0),
Arguments.of(SysmlPackage.eINSTANCE.getActionDefinition(), ownedMember, 6, 0),
Arguments.of(SysmlPackage.eINSTANCE.getAcceptActionUsage(), ownedMember, 2, 0),
Arguments.of(SysmlPackage.eINSTANCE.getActionUsage(), ownedMember, 7, 0),
Arguments.of(SysmlPackage.eINSTANCE.getAssignmentActionUsage(), ownedMember, 1, 0),
Arguments.of(SysmlPackage.eINSTANCE.getConcernDefinition(), ownedMember, 8, 0),
Arguments.of(SysmlPackage.eINSTANCE.getConcernUsage(), ownedMember, 8, 0),
Arguments.of(SysmlPackage.eINSTANCE.getConstraintDefinition(), ownedMember, 2, 0),
Arguments.of(SysmlPackage.eINSTANCE.getConstraintUsage(), ownedMember, 4, 0),
Arguments.of(SysmlPackage.eINSTANCE.getEnumerationDefinition(), ownedMember, 2, 0),
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceDefinition(), ownedMember, 6, 0),
Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), ownedMember, 4, 0),
Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), ownedMember, 2, 0),
Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), ownedMember, 4, 0),
Arguments.of(SysmlPackage.eINSTANCE.getMetadataDefinition(), ownedMember, 3, 0),
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceDefinition(), ownedMember, 3, 0),
Arguments.of(SysmlPackage.eINSTANCE.getOccurrenceUsage(), ownedMember, 2, 0),
// A package doesn't have a compartment: it is handled as a custom node
Arguments.of(SysmlPackage.eINSTANCE.getPackage(), ownedMember, 0),
Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 11),
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 11),
Arguments.of(SysmlPackage.eINSTANCE.getPortDefinition(), ownedMember, 5),
Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), ownedMember, 5),
Arguments.of(SysmlPackage.eINSTANCE.getRequirementDefinition(), ownedMember, 8),
Arguments.of(SysmlPackage.eINSTANCE.getRequirementUsage(), ownedMember, 8),
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseDefinition(), ownedMember, 5),
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseUsage(), ownedMember, 7),
Arguments.of(SysmlPackage.eINSTANCE.getSatisfyRequirementUsage(), ownedMember, 8),
Arguments.of(SysmlPackage.eINSTANCE.getStateDefinition(), ownedMember, 6),
Arguments.of(SysmlPackage.eINSTANCE.getStateUsage(), ownedMember, 6),
Arguments.of(SysmlPackage.eINSTANCE.getNamespaceImport(), SysmlPackage.eINSTANCE.getNamespace_OwnedImport(), 0))
.map(TestNameGenerator::namedArguments);
Arguments.of(SysmlPackage.eINSTANCE.getPackage(), ownedMember, 0, 0),
Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 11, 0),
Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 11, 0),
Arguments.of(SysmlPackage.eINSTANCE.getPortDefinition(), ownedMember, 5, 0),
Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), ownedMember, 5, 0),
Arguments.of(SysmlPackage.eINSTANCE.getRequirementDefinition(), ownedMember, 8, 0),
Arguments.of(SysmlPackage.eINSTANCE.getRequirementUsage(), ownedMember, 8, 0),
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseDefinition(), ownedMember, 5, 0),
Arguments.of(SysmlPackage.eINSTANCE.getUseCaseUsage(), ownedMember, 7, 0),
Arguments.of(SysmlPackage.eINSTANCE.getSatisfyRequirementUsage(), ownedMember, 8, 0),
Arguments.of(SysmlPackage.eINSTANCE.getStateDefinition(), ownedMember, 6, 0),
Arguments.of(SysmlPackage.eINSTANCE.getStateUsage(), ownedMember, 6, 0),
Arguments.of(SysmlPackage.eINSTANCE.getNamespaceImport(), SysmlPackage.eINSTANCE.getNamespace_OwnedImport(), 0,
0)
).map(TestNameGenerator::namedArguments);
}

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

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

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

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

Expand Down
Loading
Loading