[ 
https://issues.apache.org/jira/browse/NIFI-10202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirill Morozov updated NIFI-10202:
----------------------------------
    Description: 
Processor configuration:

!image-2022-07-07-11-39-46-555.png!

Test for this case failed:
{code:java}
@Test
public void testUpdateStatementTypeBasedOnPrimaryKey() throws 
InitializationException, ProcessException, SQLException, IOException {
    final TestRunner runner = TestRunners.newTestRunner(ConvertJSONToSQL.class);

    runner.addControllerService("dbcp", service);
    runner.enableControllerService(service);
    runner.setProperty(ConvertJSONToSQL.CONNECTION_POOL, "dbcp");
    runner.setProperty(ConvertJSONToSQL.TABLE_NAME, "PERSONS");
    runner.setProperty(ConvertJSONToSQL.STATEMENT_TYPE, 
ConvertJSONToSQL.USE_ATTR_TYPE);
    Map<String, String> attrs = new HashMap<>();
    attrs.put(ConvertJSONToSQL.STATEMENT_TYPE_ATTRIBUTE, "UPDATE");
    
runner.enqueue(Paths.get("src/test/resources/TestConvertJSONToSQL/person-1.json"),attrs);
    runner.run();

    runner.assertTransferCount(ConvertJSONToSQL.REL_ORIGINAL, 1);
    
runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_ORIGINAL).get(0).assertAttributeEquals(FRAGMENT_COUNT.key(),
 "1");
    runner.assertTransferCount(ConvertJSONToSQL.REL_SQL, 1);
    final MockFlowFile out = 
runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_SQL).get(0);
    out.assertAttributeEquals("sql.args.1.type", 
String.valueOf(java.sql.Types.VARCHAR));
    out.assertAttributeEquals("sql.args.1.value", "Mark");
    out.assertAttributeEquals("sql.args.2.type", 
String.valueOf(java.sql.Types.INTEGER));
    out.assertAttributeEquals("sql.args.2.value", "48");
    out.assertAttributeEquals("sql.args.3.type", 
String.valueOf(java.sql.Types.INTEGER));
    out.assertAttributeEquals("sql.args.3.value", "1");

    out.assertContentEquals("UPDATE PERSONS SET NAME = ?, CODE = ? WHERE ID = 
?");
}
 {code}

  was:
Processor configuration:

!image-2022-07-07-11-39-46-555.png!

Test for this case failed:

@Test
public void testUpdateStatementTypeBasedOnPrimaryKey() throws 
InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(ConvertJSONToSQL.class);

runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
runner.setProperty(ConvertJSONToSQL.CONNECTION_POOL, "dbcp");
runner.setProperty(ConvertJSONToSQL.TABLE_NAME, "PERSONS");
runner.setProperty(ConvertJSONToSQL.STATEMENT_TYPE, 
ConvertJSONToSQL.USE_ATTR_TYPE);
Map<String, String> attrs = new HashMap<>();
attrs.put(ConvertJSONToSQL.STATEMENT_TYPE_ATTRIBUTE, "UPDATE");
runner.enqueue(Paths.get("src/test/resources/TestConvertJSONToSQL/person-1.json"),attrs);
runner.run();

runner.assertTransferCount(ConvertJSONToSQL.REL_ORIGINAL, 1);
runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_ORIGINAL).get(0).assertAttributeEquals(FRAGMENT_COUNT.key(),
 "1");
runner.assertTransferCount(ConvertJSONToSQL.REL_SQL, 1);
final MockFlowFile out = 
runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_SQL).get(0);
out.assertAttributeEquals("sql.args.1.type", 
String.valueOf(java.sql.Types.VARCHAR));
out.assertAttributeEquals("sql.args.1.value", "Mark");
out.assertAttributeEquals("sql.args.2.type", 
String.valueOf(java.sql.Types.INTEGER));
out.assertAttributeEquals("sql.args.2.value", "48");
out.assertAttributeEquals("sql.args.3.type", 
String.valueOf(java.sql.Types.INTEGER));
out.assertAttributeEquals("sql.args.3.value", "1");

out.assertContentEquals("UPDATE PERSONS SET NAME = ?, CODE = ? WHERE ID = ?");
}

 


> ConvertJSONToSQL don't use primaryKey with update statement  from 
> "statement.type" attribute
> --------------------------------------------------------------------------------------------
>
>                 Key: NIFI-10202
>                 URL: https://issues.apache.org/jira/browse/NIFI-10202
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.16.3
>         Environment: Windows 10
>            Reporter: Kirill Morozov
>            Priority: Minor
>         Attachments: image-2022-07-07-11-39-04-839.png, 
> image-2022-07-07-11-39-28-061.png, image-2022-07-07-11-39-46-555.png
>
>
> Processor configuration:
> !image-2022-07-07-11-39-46-555.png!
> Test for this case failed:
> {code:java}
> @Test
> public void testUpdateStatementTypeBasedOnPrimaryKey() throws 
> InitializationException, ProcessException, SQLException, IOException {
>     final TestRunner runner = 
> TestRunners.newTestRunner(ConvertJSONToSQL.class);
>     runner.addControllerService("dbcp", service);
>     runner.enableControllerService(service);
>     runner.setProperty(ConvertJSONToSQL.CONNECTION_POOL, "dbcp");
>     runner.setProperty(ConvertJSONToSQL.TABLE_NAME, "PERSONS");
>     runner.setProperty(ConvertJSONToSQL.STATEMENT_TYPE, 
> ConvertJSONToSQL.USE_ATTR_TYPE);
>     Map<String, String> attrs = new HashMap<>();
>     attrs.put(ConvertJSONToSQL.STATEMENT_TYPE_ATTRIBUTE, "UPDATE");
>     
> runner.enqueue(Paths.get("src/test/resources/TestConvertJSONToSQL/person-1.json"),attrs);
>     runner.run();
>     runner.assertTransferCount(ConvertJSONToSQL.REL_ORIGINAL, 1);
>     
> runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_ORIGINAL).get(0).assertAttributeEquals(FRAGMENT_COUNT.key(),
>  "1");
>     runner.assertTransferCount(ConvertJSONToSQL.REL_SQL, 1);
>     final MockFlowFile out = 
> runner.getFlowFilesForRelationship(ConvertJSONToSQL.REL_SQL).get(0);
>     out.assertAttributeEquals("sql.args.1.type", 
> String.valueOf(java.sql.Types.VARCHAR));
>     out.assertAttributeEquals("sql.args.1.value", "Mark");
>     out.assertAttributeEquals("sql.args.2.type", 
> String.valueOf(java.sql.Types.INTEGER));
>     out.assertAttributeEquals("sql.args.2.value", "48");
>     out.assertAttributeEquals("sql.args.3.type", 
> String.valueOf(java.sql.Types.INTEGER));
>     out.assertAttributeEquals("sql.args.3.value", "1");
>     out.assertContentEquals("UPDATE PERSONS SET NAME = ?, CODE = ? WHERE ID = 
> ?");
> }
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to