@Test
  public void testTcpInputCrud() {
    Service service = connect();
    InputCollection inputCollection = service.getInputs();
    String port = "9999"; // test port

    // CRUD TCP (raw) input
    if (inputCollection.containsKey(port)) {
      inputCollection.remove(port);
      inputCollection.refresh();
    }
    assertFalse(assertRoot + "#19", inputCollection.containsKey(port));

    inputCollection.create(port, InputKind.Tcp);
    assertTrue(assertRoot + "#20", inputCollection.containsKey(port));
    TcpInput tcpInput = (TcpInput) inputCollection.get(port);

    tcpInput.setConnectionHost("one.two.three");
    tcpInput.setHost("myhost");
    tcpInput.setIndex("main");
    tcpInput.setQueue("indexQueue");
    if (service.versionCompare("4.3") >= 0) {
      // Behavioral difference between 4.3 and earlier versions
      tcpInput.setRawTcpDoneTimeout(120);
      tcpInput.setRestrictToHost("four.five.com");
    }
    tcpInput.setSource("tcp");
    tcpInput.setSourceType("sdk-tests");
    tcpInput.setSSL(false);
    tcpInput.update();

    assertEquals(assertRoot + "#21", "one.two.three", tcpInput.getConnectionHost());
    assertEquals(assertRoot + "#22", "myhost", tcpInput.getHost());
    assertEquals(assertRoot + "#23", "main", tcpInput.getIndex());
    assertEquals(assertRoot + "#24", "indexQueue", tcpInput.getQueue());
    assertEquals(assertRoot + "#25", "tcp", tcpInput.getSource());
    assertEquals(assertRoot + "#26", "sdk-tests", tcpInput.getSourceType());
    assertFalse(assertRoot + "#27", tcpInput.getSSL());

    tcpInput.remove();
    inputCollection.refresh();
    assertFalse(assertRoot + "#28", inputCollection.containsKey(port));
  }