You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Kirill Morozov (Jira)" <ji...@apache.org> on 2022/07/07 08:42:00 UTC

[jira] [Created] (NIFI-10202) ConvertJSONToSQL don't use primaryKey with update statement from "statement.type" attribute

Kirill Morozov created NIFI-10202:
-------------------------------------

             Summary: 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
         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:

@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 = ?");
}

 



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