Object getFromSignal(String signalName, String paramName) {
    try {
      return executor
          .submit(() -> fromSignal(signalName, paramName))
          .get(TIMEOUT_IN_MILLIS, TimeUnit.MILLISECONDS);
    } catch (Exception e) {
      throw new MaestroInternalError(
          e,
          "getFromSignal throws an exception for signalName=[%s], paramName=[%s]",
          signalName,
          paramName);
    }
  }
@Test
  public void testGetFromSignal() {
    SignalInitiator initiator = Mockito.mock(SignalInitiator.class);
    when(instanceWrapper.getInitiator()).thenReturn(initiator);
    when(initiator.getType()).thenReturn(Initiator.Type.SIGNAL);
    when(initiator.getParams())
        .thenReturn(
            twoItemMap(
                "signal-a",
                StringMapParameter.builder()
                    .evaluatedResult(singletonMap("param1", "value1"))
                    .build(),
                "signal-b",
                MapParameter.builder().evaluatedResult(singletonMap("param2", 123L)).build()));
    assertEquals("value1", paramExtension.getFromSignal("signal-a", "param1"));
    assertEquals(123L, paramExtension.getFromSignal("signal-b", "param2"));
  }