예제 #1
0
  @Test
  public void testStatus() throws Exception {
    log.info("starting testStatus ... ");

    SmppConfiguration configuration = new SmppConfiguration();
    configuration.setHost("localhost");
    configuration.setPort(SERVER_PORT);
    configuration.setSystemId("test");
    configuration.setPassword("test");

    SmppConnector connector = new SmppConnector(configuration);
    injectResource(new MockProcessorContext(), connector);
    Assert.assertEquals(connector.getStatus(), Status.UNKNOWN);

    connector.doStart();
    waitUntilStatus(connector, DEFAULT_TIMEOUT, Status.OK);

    try {
      stopSimulator();
      waitUntilStatus(connector, DEFAULT_TIMEOUT, Status.FAILED);

      startSimulator();
      waitUntilStatus(connector, DEFAULT_TIMEOUT, Status.OK);

      Assert.assertEquals(connector.getStatus(), Status.OK);
    } finally {
      connector.doStop();
    }
  }
예제 #2
0
  private void waitUntilStatus(SmppConnector connector, long timeout, Status status) {
    boolean isValid = false;

    long startTime = new Date().getTime();
    long actualTime = new Date().getTime();
    while (!isValid && (actualTime - startTime) <= timeout) {
      if (connector.getStatus() == status) {
        isValid = true;
      } else {
        synchronized (this) {
          try {
            this.wait(200);
          } catch (Exception e) {
          }
        }
      }

      actualTime = new Date().getTime();
    }

    Assert.assertEquals(connector.getStatus(), status);
  }