lordgamez commented on code in PR #1850: URL: https://github.com/apache/nifi-minifi-cpp/pull/1850#discussion_r1850459876
########## extensions/librdkafka/tests/PublishKafkaMigratorTests.cpp: ########## @@ -0,0 +1,200 @@ +/** +* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "unit/TestBase.h" +#include "unit/Catch.h" +#include "PublishKafka.h" +#include "unit/ConfigurationTestController.h" +#include "core/flow/AdaptiveConfiguration.h" +#include "utils/crypto/property_encryption/PropertyEncryptionUtils.h" + +#include "yaml-cpp/yaml.h" + +namespace org::apache::nifi::minifi::test { + +using minifi::utils::crypto::property_encryption::decrypt; + +TEST_CASE("PublishKafkaMigratorTest yaml") { + static constexpr std::string_view ORIGINAL_YAML = R"( +MiNiFi Config Version: 3 +Flow Controller: + name: MiNiFi Flow +Processors: + - name: Get files from /tmp/input + id: 7fd166aa-0662-4c42-affa-88f6fb39807f + class: org.apache.nifi.processors.standard.GetFile + scheduling period: 2 sec + scheduling strategy: TIMER_DRIVEN + Properties: + Input Directory: /tmp/input + - name: Publish messages to Kafka topic test + id: 8a534b4a-2b4a-4e1e-ab07-8a09fa08f848 + class: org.apache.nifi.processors.standard.PublishKafka + scheduling strategy: EVENT_DRIVEN + auto-terminated relationships list: + - success + - failure + Properties: + Message Key Field: foo + Batch Size: 10 + Client Name: test-client + Compress Codec: none + Delivery Guarantee: 1 + Known Brokers: kafka-broker:9092 + Message Timeout: 12 sec + Request Timeout: 10 sec + Topic Name: test + Security CA: /tmp/resources/certs/ca-cert + Security Cert: /tmp/resources/certs/client_test_client_client.pem + Security Pass Phrase: abcdefgh + Security Private Key: /tmp/resources/certs/client_test_client_client.key +Connections: + - name: GetFile/success/PublishKafka + id: 1edd529e-eee9-4b05-9e35-f1607bb0243b + source id: 7fd166aa-0662-4c42-affa-88f6fb39807f + source relationship name: success + destination id: 8a534b4a-2b4a-4e1e-ab07-8a09fa08f848 +Controller Services: [] +Remote Processing Groups: [] +)"; + ConfigurationTestController test_controller; + std::string serialized_flow_definition; + SECTION("YamlConfiguration") { + core::YamlConfiguration yaml_config(test_controller.getContext()); + auto root_flow_definition = yaml_config.getRootFromPayload(std::string{ORIGINAL_YAML}); + REQUIRE(root_flow_definition); + serialized_flow_definition = yaml_config.serialize(*root_flow_definition); + } + SECTION("Adaptive Yaml Configuration") { + core::flow::AdaptiveConfiguration adaptive_configuration(test_controller.getContext()); + auto root_flow_definition = adaptive_configuration.getRootFromPayload(std::string{ORIGINAL_YAML}); + REQUIRE(root_flow_definition); + serialized_flow_definition = adaptive_configuration.serialize(*root_flow_definition); + } Review Comment: Do we need to test this in the scope of this feature? As far as I see the flow migration logic doesn't impact how the AdaptiveConfiguration recognizes the flow format, so testing the yml and json configuration separately should be enough. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
