Ejemplo n.º 1
0
  @Test
  public void testTCPSendDelimitedMessagesWithErrors() {
    sender.setErrorStart(3);
    sender.setErrorEnd(4);

    final String delimiter = "DD";
    runner.setProperty(PutSplunk.MESSAGE_DELIMITER, delimiter);
    runner.setProperty(PutSplunk.PROTOCOL, PutSplunk.TCP_VALUE.getValue());

    // no delimiter at end
    final String success = "This is message 1DDThis is message 2DD";
    final String failure = "This is message 3DDThis is message 4";
    final String message = success + failure;

    runner.enqueue(message);
    runner.run(1);
    runner.assertTransferCount(PutSplunk.REL_SUCCESS, 1);
    runner.assertTransferCount(PutSplunk.REL_FAILURE, 1);

    // first two messages should went out success
    final MockFlowFile successFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_SUCCESS).get(0);
    successFlowFile.assertContentEquals(success);

    // second two messages should went to failure
    final MockFlowFile failureFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_FAILURE).get(0);
    failureFlowFile.assertContentEquals(failure);

    // should only have the first two messages
    Assert.assertEquals(2, sender.getMessages().size());
    Assert.assertEquals("This is message 1\n", sender.getMessages().get(0));
    Assert.assertEquals("This is message 2\n", sender.getMessages().get(1));
  }
Ejemplo n.º 2
0
  @Test
  public void testTCPSendDelimitedMessagesWithEL() {
    final String delimiter = "DD";
    runner.setProperty(PutSplunk.MESSAGE_DELIMITER, "${flow.file.delim}");
    runner.setProperty(PutSplunk.PROTOCOL, PutSplunk.TCP_VALUE.getValue());

    // no delimiter at end
    final String message = "This is message 1DDThis is message 2DDThis is message 3";

    final Map<String, String> attrs = new HashMap<>();
    attrs.put("flow.file.delim", delimiter);

    runner.enqueue(message, attrs);
    runner.run(1);
    runner.assertAllFlowFilesTransferred(PutSplunk.REL_SUCCESS, 1);

    final MockFlowFile mockFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_SUCCESS).get(0);
    mockFlowFile.assertContentEquals(message);

    Assert.assertEquals(3, sender.getMessages().size());
    Assert.assertEquals("This is message 1\n", sender.getMessages().get(0));
    Assert.assertEquals("This is message 2\n", sender.getMessages().get(1));
    Assert.assertEquals("This is message 3\n", sender.getMessages().get(2));
  }
Ejemplo n.º 3
0
  @Test
  public void testUDPSendWholeFlowFile() {
    runner.setProperty(PutSplunk.PROTOCOL, PutSplunk.UDP_VALUE.getValue());
    final String message = "This is one message, should send the whole FlowFile";

    runner.enqueue(message);
    runner.run(1);
    runner.assertAllFlowFilesTransferred(PutSplunk.REL_SUCCESS, 1);

    final MockFlowFile mockFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_SUCCESS).get(0);
    mockFlowFile.assertContentEquals(message);

    Assert.assertEquals(1, sender.getMessages().size());
    Assert.assertEquals(message, sender.getMessages().get(0));
  }
Ejemplo n.º 4
0
  @Test
  public void testCompletingPreviousBatchOnNextExecution() {
    runner.setProperty(PutSplunk.PROTOCOL, PutSplunk.UDP_VALUE.getValue());

    final String message = "This is one message, should send the whole FlowFile";

    runner.enqueue(message);
    runner.run(2, false); // don't shutdown to prove that next onTrigger complete previous batch
    runner.assertAllFlowFilesTransferred(PutSplunk.REL_SUCCESS, 1);

    final MockFlowFile mockFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_SUCCESS).get(0);
    mockFlowFile.assertContentEquals(message);

    Assert.assertEquals(1, sender.getMessages().size());
    Assert.assertEquals(message, sender.getMessages().get(0));
  }
Ejemplo n.º 5
0
  @Test
  public void testTCPSendDelimitedMessagesWithNewLineDelimiter() {
    final String delimiter = "\\n";
    runner.setProperty(PutSplunk.MESSAGE_DELIMITER, delimiter);
    runner.setProperty(PutSplunk.PROTOCOL, PutSplunk.TCP_VALUE.getValue());

    final String message = "This is message 1\nThis is message 2\nThis is message 3";

    runner.enqueue(message);
    runner.run(1);
    runner.assertAllFlowFilesTransferred(PutSplunk.REL_SUCCESS, 1);

    final MockFlowFile mockFlowFile =
        runner.getFlowFilesForRelationship(PutSplunk.REL_SUCCESS).get(0);
    mockFlowFile.assertContentEquals(message);

    Assert.assertEquals(3, sender.getMessages().size());
    Assert.assertEquals("This is message 1\n", sender.getMessages().get(0));
    Assert.assertEquals("This is message 2\n", sender.getMessages().get(1));
    Assert.assertEquals("This is message 3\n", sender.getMessages().get(2));
  }