2727import org .eclipse .sirius .components .collaborative .dto .CreateRepresentationInput ;
2828import org .eclipse .sirius .components .collaborative .tables .TableEventInput ;
2929import org .eclipse .sirius .components .collaborative .tables .dto .InvokeRowContextMenuEntryInput ;
30+ import org .eclipse .sirius .components .collaborative .tables .dto .InvokeToolMenuEntryInput ;
3031import org .eclipse .sirius .components .core .api .SuccessPayload ;
3132import org .eclipse .sirius .components .tables .TextareaCell ;
3233import org .eclipse .sirius .components .tables .TextfieldCell ;
3334import org .eclipse .sirius .components .tables .tests .graphql .InvokeRowContextMenuEntryMutationRunner ;
35+ import org .eclipse .sirius .components .tables .tests .graphql .InvokeToolMenuEntryMutationRunner ;
3436import org .eclipse .sirius .components .tables .tests .graphql .RowContextMenuQueryRunner ;
3537import org .eclipse .sirius .components .tables .tests .graphql .TableEventSubscriptionRunner ;
38+ import org .eclipse .sirius .components .tables .tests .graphql .ToolMenuEntriesQueryRunner ;
3639import org .eclipse .sirius .web .tests .services .api .IGivenCreatedTableSubscription ;
3740import org .eclipse .sirius .web .tests .services .api .IGivenInitialServerState ;
3841import org .eclipse .syson .AbstractIntegrationTests ;
39- import org .eclipse .syson .application .controllers .diagrams .graphql .CreateRequirementMutationRunner ;
40- import org .eclipse .syson .application .controllers .diagrams .graphql .ExposeRequirementsMutationRunner ;
42+ import org .eclipse .syson .GivenSysONServer ;
4143import org .eclipse .syson .application .data .RequirementsTableTestProjectData ;
42- import org .eclipse .syson .table .requirements .view .dto .CreateRequirementInput ;
43- import org .eclipse .syson .table .requirements .view .dto .ExposeRequirementsInput ;
44+ import org .eclipse .syson .table .requirements .view .RTVTableToolMenuEntriesProvider ;
4445import org .eclipse .syson .util .SysONRepresentationDescriptionIdentifiers ;
4546import org .junit .jupiter .api .BeforeEach ;
4647import org .junit .jupiter .api .DisplayName ;
@@ -71,10 +72,7 @@ public class RequirementsTableControllerIntegrationTests extends AbstractIntegra
7172 private IGivenCreatedTableSubscription givenCreatedTableSubscription ;
7273
7374 @ Autowired
74- private CreateRequirementMutationRunner createRequirementMutationRunner ;
75-
76- @ Autowired
77- private ExposeRequirementsMutationRunner exposeRequirementsMutationRunner ;
75+ private InvokeToolMenuEntryMutationRunner invokeToolMenuEntryMutationRunner ;
7876
7977 @ Autowired
8078 private RowContextMenuQueryRunner rowContextMenuQueryRunner ;
@@ -85,6 +83,9 @@ public class RequirementsTableControllerIntegrationTests extends AbstractIntegra
8583 @ Autowired
8684 private TableEventSubscriptionRunner tableEventSubscriptionRunner ;
8785
86+ @ Autowired
87+ private ToolMenuEntriesQueryRunner toolMenuEntriesQueryRunner ;
88+
8889 @ BeforeEach
8990 public void beforeEach () {
9091 this .givenInitialServerState .initialize ();
@@ -182,13 +183,15 @@ public void testCreateRequirementTableAction() {
182183 });
183184
184185 Runnable createRequirementTask = () -> {
185- var createRequirementInput = new CreateRequirementInput (
186+ var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput (
186187 UUID .randomUUID (),
187188 RequirementsTableTestProjectData .EDITING_CONTEXT_ID ,
188- tableId .get ());
189+ tableId .get (),
190+ tableId .get (),
191+ RTVTableToolMenuEntriesProvider .ADD_REQUIREMENT_TABLE_TOOL_ENTRY );
189192
190- var result = this .createRequirementMutationRunner .run (createRequirementInput );
191- String typename = JsonPath .read (result .data (), "$.data.createRequirement .__typename" );
193+ var result = this .invokeToolMenuEntryMutationRunner .run (invokeToolMenuEntryInput );
194+ String typename = JsonPath .read (result .data (), "$.data.invokeToolMenuEntry .__typename" );
192195 assertThat (typename ).isEqualTo (SuccessPayload .class .getSimpleName ());
193196 };
194197
@@ -222,13 +225,15 @@ public void testExposeRequirementsTableAction() {
222225 });
223226
224227 Runnable exposeRequirementsTask = () -> {
225- var createRequirementInput = new ExposeRequirementsInput (
228+ var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput (
226229 UUID .randomUUID (),
227230 RequirementsTableTestProjectData .EDITING_CONTEXT_ID ,
228- tableId .get ());
231+ tableId .get (),
232+ tableId .get (),
233+ RTVTableToolMenuEntriesProvider .IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY );
229234
230- var result = this .exposeRequirementsMutationRunner .run (createRequirementInput );
231- String typename = JsonPath .read (result .data (), "$.data.exposeRequirements .__typename" );
235+ var result = this .invokeToolMenuEntryMutationRunner .run (invokeToolMenuEntryInput );
236+ String typename = JsonPath .read (result .data (), "$.data.invokeToolMenuEntry .__typename" );
232237 assertThat (typename ).isEqualTo (SuccessPayload .class .getSimpleName ());
233238 };
234239
@@ -269,13 +274,15 @@ public void testDeleteFromTable() {
269274 });
270275
271276 Runnable exposeRequirementsTask = () -> {
272- var createRequirementInput = new ExposeRequirementsInput (
277+ var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput (
273278 UUID .randomUUID (),
274279 RequirementsTableTestProjectData .EDITING_CONTEXT_ID ,
275- tableId .get ());
280+ tableId .get (),
281+ tableId .get (),
282+ RTVTableToolMenuEntriesProvider .IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY );
276283
277- var result = this .exposeRequirementsMutationRunner .run (createRequirementInput );
278- String typename = JsonPath .read (result .data (), "$.data.exposeRequirements .__typename" );
284+ var result = this .invokeToolMenuEntryMutationRunner .run (invokeToolMenuEntryInput );
285+ String typename = JsonPath .read (result .data (), "$.data.invokeToolMenuEntry .__typename" );
279286 assertThat (typename ).isEqualTo (SuccessPayload .class .getSimpleName ());
280287 };
281288
@@ -354,13 +361,15 @@ public void testDeleteFromModel() {
354361 });
355362
356363 Runnable exposeRequirementsTask = () -> {
357- var createRequirementInput = new ExposeRequirementsInput (
364+ var invokeToolMenuEntryInput = new InvokeToolMenuEntryInput (
358365 UUID .randomUUID (),
359366 RequirementsTableTestProjectData .EDITING_CONTEXT_ID ,
360- tableId .get ());
367+ tableId .get (),
368+ tableId .get (),
369+ RTVTableToolMenuEntriesProvider .IMPORT_EXISTING_REQUIREMENTS_TABLE_TOOL_ENTRY );
361370
362- var result = this .exposeRequirementsMutationRunner .run (createRequirementInput );
363- String typename = JsonPath .read (result .data (), "$.data.exposeRequirements .__typename" );
371+ var result = this .invokeToolMenuEntryMutationRunner .run (invokeToolMenuEntryInput );
372+ String typename = JsonPath .read (result .data (), "$.data.invokeToolMenuEntry .__typename" );
364373 assertThat (typename ).isEqualTo (SuccessPayload .class .getSimpleName ());
365374 };
366375
@@ -419,4 +428,20 @@ public void testDeleteFromModel() {
419428 .thenCancel ()
420429 .verify (Duration .ofSeconds (10 ));
421430 }
431+
432+ @ Test
433+ @ GivenSysONServer ({ RequirementsTableTestProjectData .SCRIPT_PATH })
434+ @ DisplayName ("Given a requirements view table, when tool menu entries query is triggered, then all related tools are returned" )
435+ public void testToolMenuEntriesQuery () {
436+
437+ Map <String , Object > variables = Map .of (
438+ "editingContextId" , RequirementsTableTestProjectData .EDITING_CONTEXT_ID ,
439+ "representationId" , RequirementsTableTestProjectData .GraphicalIds .TABLE_ID ,
440+ "tableId" , RequirementsTableTestProjectData .GraphicalIds .TABLE_ID
441+ );
442+ var result = this .toolMenuEntriesQueryRunner .run (variables );
443+
444+ List <String > toolMenuEntriesId = JsonPath .read (result .data (), "$.data.viewer.editingContext.representation.description.toolMenuEntries[*].id" );
445+ assertThat (toolMenuEntriesId ).containsExactlyInAnyOrder ("add-requirement-table-tool-entry" , "import-existing-requirements-table-tool-entry" );
446+ }
422447}
0 commit comments