Github user e-kolpakov commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2481#discussion_r169608651
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateCsv.java
 ---
    @@ -333,4 +333,33 @@ public void testMultipleRuns() {
             runner.assertTransferCount(ValidateCsv.REL_VALID, 2);
             runner.assertTransferCount(ValidateCsv.REL_INVALID, 0);
         }
    +
    +    @Test
    +    public void testEscapingLineByLine() {
    +        final TestRunner runner = TestRunners.newTestRunner(new 
ValidateCsv());
    +        runner.setProperty(ValidateCsv.DELIMITER_CHARACTER, ",");
    +        runner.setProperty(ValidateCsv.END_OF_LINE_CHARACTER, "\r\n");
    +        runner.setProperty(ValidateCsv.QUOTE_CHARACTER, "\"");
    +        runner.setProperty(ValidateCsv.HEADER, "true");
    +        runner.setProperty(ValidateCsv.VALIDATION_STRATEGY, 
ValidateCsv.VALIDATE_LINES_INDIVIDUALLY);
    +
    +        final String row = 
"Header1,\"Header2,escaped\",Header3\r\nField1,\"Field2,escaped\",Field3";
    +        runner.setProperty(ValidateCsv.SCHEMA, 
"ParseInt(),ParseInt(),ParseInt()");
    +
    +        runner.enqueue(row);
    +        runner.run(1);
    +
    +        runner.assertTransferCount(ValidateCsv.REL_VALID, 0);
    +        runner.assertTransferCount(ValidateCsv.REL_INVALID, 1);
    +        
runner.getFlowFilesForRelationship(ValidateCsv.REL_INVALID).get(0).assertContentEquals(row);
    +        runner.clearTransferState();
    +
    +        runner.setProperty(ValidateCsv.SCHEMA, "null,null,null");
    --- End diff --
    
    @pvillard31 Suggestion: it might make sense to split this into a dedicated 
test, so that there are two independent scenarios:
    
    1. Escaping is preserved in "valid" output
    2. Escaping is preserved in "invalid" output.
    
    This test as is covers both, but have a minor drawback that it would stop 
at invalid output assertion (line 354) even if both valid and invalid outputs 
are affected.


---

Reply via email to