blob: dfdd07143386331a79c8b29b81b04f87b652c6f4 [file] [log] [blame]
/**
*
* 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 "../../include/core/Property.h"
#include <string>
#include "utils/StringUtils.h"
#include "core/Property.h"
#include "../TestBase.h"
TEST_CASE("Test Boolean Conversion", "[testboolConversion]") {
bool b;
REQUIRE(true == org::apache::nifi::minifi::utils::StringUtils::StringToBool("true", b));
REQUIRE(true == org::apache::nifi::minifi::utils::StringUtils::StringToBool("True", b));
REQUIRE(true == org::apache::nifi::minifi::utils::StringUtils::StringToBool("TRue", b));
REQUIRE(true == org::apache::nifi::minifi::utils::StringUtils::StringToBool("tRUE", b));
REQUIRE(false == org::apache::nifi::minifi::utils::StringUtils::StringToBool("FALSE", b));
REQUIRE(false == org::apache::nifi::minifi::utils::StringUtils::StringToBool("FALLSEY", b));
REQUIRE(false == org::apache::nifi::minifi::utils::StringUtils::StringToBool("FaLSE", b));
REQUIRE(false == org::apache::nifi::minifi::utils::StringUtils::StringToBool("false", b));
}
TEST_CASE("Test Is it Time", "[testTime]") {
core::TimeUnit unit;
int64_t max_partition_millis_;
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToTime("1 SEC", max_partition_millis_, unit));
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToTime("1 sec", max_partition_millis_, unit));
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToTime("1 s", max_partition_millis_, unit));
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToTime("1 S", max_partition_millis_, unit));
}
TEST_CASE("Test Trimmer Right", "[testTrims]") {
std::string test = "a quick brown fox jumped over the road\t\n";
REQUIRE(test.c_str()[test.length() - 1] == '\n');
REQUIRE(test.c_str()[test.length() - 2] == '\t');
test = org::apache::nifi::minifi::utils::StringUtils::trimRight(test);
REQUIRE(test.c_str()[test.length() - 1] == 'd');
REQUIRE(test.c_str()[test.length() - 2] == 'a');
test = "a quick brown fox jumped over the road\v\t";
REQUIRE(test.c_str()[test.length() - 1] == '\t');
REQUIRE(test.c_str()[test.length() - 2] == '\v');
test = org::apache::nifi::minifi::utils::StringUtils::trimRight(test);
REQUIRE(test.c_str()[test.length() - 1] == 'd');
REQUIRE(test.c_str()[test.length() - 2] == 'a');
test = "a quick brown fox jumped over the road \f";
REQUIRE(test.c_str()[test.length() - 1] == '\f');
REQUIRE(test.c_str()[test.length() - 2] == ' ');
test = org::apache::nifi::minifi::utils::StringUtils::trimRight(test);
REQUIRE(test.c_str()[test.length() - 1] == 'd');
}
TEST_CASE("Test Trimmer Left", "[testTrims]") {
std::string test = "\t\na quick brown fox jumped over the road\t\n";
REQUIRE(test.c_str()[0] == '\t');
REQUIRE(test.c_str()[1] == '\n');
test = org::apache::nifi::minifi::utils::StringUtils::trimLeft(test);
REQUIRE(test.c_str()[0] == 'a');
REQUIRE(test.c_str()[1] == ' ');
test = "\v\ta quick brown fox jumped over the road\v\t";
REQUIRE(test.c_str()[0] == '\v');
REQUIRE(test.c_str()[1] == '\t');
test = org::apache::nifi::minifi::utils::StringUtils::trimLeft(test);
REQUIRE(test.c_str()[0] == 'a');
REQUIRE(test.c_str()[1] == ' ');
test = " \fa quick brown fox jumped over the road \f";
REQUIRE(test.c_str()[0] == ' ');
REQUIRE(test.c_str()[1] == '\f');
test = org::apache::nifi::minifi::utils::StringUtils::trimLeft(test);
REQUIRE(test.c_str()[0] == 'a');
REQUIRE(test.c_str()[1] == ' ');
}
TEST_CASE("Test Permissions Conversion", "[testPermissions]") {
uint32_t permissions = 0U;
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("0777", permissions));
REQUIRE(0777 == permissions);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("0000", permissions));
REQUIRE(0000 == permissions);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("0644", permissions));
REQUIRE(0644 == permissions);
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("0999", permissions));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("999", permissions));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("0644a", permissions));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("07777", permissions));
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("rwxrwxrwx", permissions));
REQUIRE(0777 == permissions);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("---------", permissions));
REQUIRE(0000 == permissions);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("rwxrw-r--", permissions));
REQUIRE(0764 == permissions);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToPermissions("r--r--r--", permissions));
REQUIRE(0444 == permissions);
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("wxrwxrwxr", permissions));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("foobarfoo", permissions));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToPermissions("foobar", permissions));
}
TEST_CASE("Test DateTime Conversion", "[testDateTime]") {
int64_t timestamp = 0LL;
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToDateTime("1970-01-01T00:00:00Z", timestamp));
REQUIRE(0LL == timestamp);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToDateTime("2000-06-17T12:34:21Z", timestamp));
REQUIRE(961245261LL == timestamp);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToDateTime("2038-01-19T03:14:07Z", timestamp));
REQUIRE(2147483647LL == timestamp);
REQUIRE(true == org::apache::nifi::minifi::core::Property::StringToDateTime("2065-01-24T05:20:00Z", timestamp));
REQUIRE(3000000000LL == timestamp);
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("1970-01-01A00:00:00Z", timestamp));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("1970-01-01T00:00:00", timestamp));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("1970-01-01T00:00:00Zfoo", timestamp));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("1969-01-01T00:00:00Z", timestamp));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("1970-13-01T00:00:00Z", timestamp));
REQUIRE(false == org::apache::nifi::minifi::core::Property::StringToDateTime("foobar", timestamp));
}