@Test
	public void testRmiTargetResumeAction() throws Throwable {
		TraceObject proc1 = setUpRmiTarget();
		traceManager.activateObject(proc1);
		waitForSwing();

		DockingAction actionTargetResume = controlPlugin.actionTargetResume;
		assertInTool(actionTargetResume);
		performEnabledAction(null, actionTargetResume, true);

		Map<String, Object> args = rmiMethodResume.expect();
		try (Transaction tx = tb.startTransaction()) {
			proc1.setAttribute(Lifespan.nowOn(0), "_state", TraceExecutionState.RUNNING.name());
		}
		rmiMethodResume.result(null);
		assertEquals(Map.ofEntries(
			Map.entry("process", proc1)),
			args);
		waitForTasks();
		waitForDomainObject(tb.trace);

		assertFalse(actionTargetResume.isEnabled());
	}
Tests for target control and state editing

<p>
In these and other control service integration tests, we use {@link ControlMode#RW_EMULATOR} as a
stand-in for any mode. We also use {@link ControlMode#RO_TARGET} just to verify the mode is
heeded. Other modes may be tested if bugs crop up in various combinations.
Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/control/DebuggerControlPluginTest.java