From bf76bcf6c991746ccb95f07bc3baa066bdab3025 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周日, 08 12月 2019 17:36:20 +0800 Subject: [PATCH] fix new tests --- test/library/LicenseReader_test.cpp | 123 +++++++++++++++++++++++----------------- 1 files changed, 71 insertions(+), 52 deletions(-) diff --git a/test/library/LicenseReader_test.cpp b/test/library/LicenseReader_test.cpp index af1b619..03ea2e8 100644 --- a/test/library/LicenseReader_test.cpp +++ b/test/library/LicenseReader_test.cpp @@ -1,79 +1,98 @@ -#define BOOST_TEST_MODULE license_reader_test -//#define BOOST_TEST_MAIN -//#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE "test_license_reader" + #include <boost/test/unit_test.hpp> -#include "../../src/library/LicenseReader.h" -#include <build_properties.h> +#include <iostream> +#include <vector> #include <stdlib.h> +#include <licensecc_properties.h> +#include <licensecc_properties_test.h> +#include <licensecc/datatypes.h> + +#include "../../src/library/base/EventRegistry.h" +#include "../../src/library/os/os.h" +#include "../../src/library/LicenseReader.hpp" + +namespace test { using namespace license; +using namespace std; +/** + * Read license at fixed location + */ +BOOST_AUTO_TEST_CASE(read_single_file) { + const char *licLocation = PROJECT_TEST_SRC_DIR "/library/test_reader.ini"; -BOOST_AUTO_TEST_CASE( read_single_file ) { - const char * licLocation = - PROJECT_TEST_SRC_DIR "/library/test_reader.ini"; - const LicenseLocation location = { licLocation, NULL, false }; - LicenseReader licenseReader(location); + const LicenseLocation location = {licLocation, nullptr}; + LicenseReader licenseReader(&location); vector<FullLicenseInfo> licenseInfos; - EventRegistry registry = licenseReader.readLicenses("PrODUCT", - licenseInfos); + const EventRegistry registry = licenseReader.readLicenses("PrODUCT", licenseInfos); BOOST_CHECK(registry.isGood()); BOOST_CHECK_EQUAL(1, licenseInfos.size()); } -BOOST_AUTO_TEST_CASE( product_not_licensed ) { - const char * licLocation = - PROJECT_TEST_SRC_DIR "/library/test_reader.ini"; - const LicenseLocation location = { licLocation, NULL, false }; - LicenseReader licenseReader(location); +/** + * Test the error return if the product code is not found in the license + */ +BOOST_AUTO_TEST_CASE(product_not_licensed) { + const char *licLocation = PROJECT_TEST_SRC_DIR "/library/test_reader.ini"; + const LicenseLocation location = {licLocation, nullptr}; + LicenseReader licenseReader(&location); vector<FullLicenseInfo> licenseInfos; - EventRegistry registry = licenseReader.readLicenses("PRODUCT-NOT", - licenseInfos); + const EventRegistry registry = licenseReader.readLicenses("PRODUCT-NOT", licenseInfos); BOOST_CHECK(!registry.isGood()); BOOST_CHECK_EQUAL(0, licenseInfos.size()); - BOOST_ASSERT(registry.getLastFailure()!=NULL); - BOOST_CHECK_EQUAL(PRODUCT_NOT_LICENSED, - registry.getLastFailure()->event_type); + BOOST_ASSERT(registry.getLastFailure() != NULL); + BOOST_CHECK_EQUAL(PRODUCT_NOT_LICENSED, registry.getLastFailure()->event_type); } -BOOST_AUTO_TEST_CASE( file_not_found ) { - const char * licLocation = PROJECT_TEST_SRC_DIR "/library/not_found.ini"; - //const char * envName = "MYVAR"; - const LicenseLocation location = { licLocation, NULL, false }; - LicenseReader licenseReader(location); +/** + * Test the error code if the license file is specified but doesn't exists + */ +BOOST_AUTO_TEST_CASE(file_not_found) { + const char *licLocation = PROJECT_TEST_SRC_DIR "/library/not_found.ini"; + // const char * envName = "MYVAR"; + const LicenseLocation location = {licLocation, nullptr}; + LicenseReader licenseReader(&location); vector<FullLicenseInfo> licenseInfos; - EventRegistry registry = licenseReader.readLicenses("PRODUCT", - licenseInfos); + const EventRegistry registry = licenseReader.readLicenses("PRODUCT", licenseInfos); BOOST_CHECK(!registry.isGood()); BOOST_CHECK_EQUAL(0, licenseInfos.size()); - BOOST_ASSERT(registry.getLastFailure()!=NULL); - BOOST_CHECK_EQUAL(LICENSE_FILE_NOT_FOUND, - registry.getLastFailure()->event_type); + BOOST_ASSERT(registry.getLastFailure() != NULL); + BOOST_CHECK_EQUAL(LICENSE_FILE_NOT_FOUND, registry.getLastFailure()->event_type); } -BOOST_AUTO_TEST_CASE( env_var_not_defined ) { - const char * envName = "MYVAR"; - const LicenseLocation location = { NULL, envName, false }; - LicenseReader licenseReader(location); +/** + * Test the error code if the license default environment variable isn't specified + */ +BOOST_AUTO_TEST_CASE(env_var_not_defined) { + UNSETENV(LICENSE_LOCATION_ENV_VAR); + const LicenseLocation location = {nullptr, nullptr}; + LicenseReader licenseReader(&location); vector<FullLicenseInfo> licenseInfos; - EventRegistry registry = licenseReader.readLicenses("PRODUCT", - licenseInfos); + const EventRegistry registry = licenseReader.readLicenses("PRODUCT", licenseInfos); BOOST_CHECK(!registry.isGood()); BOOST_CHECK_EQUAL(0, licenseInfos.size()); - BOOST_ASSERT(registry.getLastFailure()!=NULL); - BOOST_CHECK_EQUAL(ENVIRONMENT_VARIABLE_NOT_DEFINED, - registry.getLastFailure()->event_type); + BOOST_ASSERT(registry.getLastFailure() != NULL); + BOOST_CHECK_EQUAL(ENVIRONMENT_VARIABLE_NOT_DEFINED, registry.getLastFailure()->event_type); } -BOOST_AUTO_TEST_CASE( read_env_var ) { - char str[MAX_PATH]; - strcpy(str,"LIC_VAR=" PROJECT_TEST_SRC_DIR "/library/test_reader.ini"); - putenv(str); - const LicenseLocation location = { NULL, "LIC_VAR", false }; - LicenseReader licenseReader(location); +/** + * Test the error code if the license default environment variable is + * specified but points to a non existent file. + */ +BOOST_AUTO_TEST_CASE(env_var_point_to_wrong_file) { + const char *environment_variable_value = PROJECT_TEST_SRC_DIR "/this/file/doesnt/exist"; + SETENV(LICENSE_LOCATION_ENV_VAR, environment_variable_value) + + const LicenseLocation location = {nullptr, nullptr}; + LicenseReader licenseReader(&location); vector<FullLicenseInfo> licenseInfos; - EventRegistry registry = licenseReader.readLicenses("PrODUCT", - licenseInfos); - BOOST_CHECK(registry.isGood()); - BOOST_CHECK_EQUAL(1, licenseInfos.size()); + const EventRegistry registry = licenseReader.readLicenses("PRODUCT", licenseInfos); + cout << registry << endl; + BOOST_CHECK(!registry.isGood()); + BOOST_CHECK_EQUAL(0, licenseInfos.size()); + BOOST_ASSERT(registry.getLastFailure() != NULL); + BOOST_CHECK_EQUAL(LICENSE_FILE_NOT_FOUND, registry.getLastFailure()->event_type); + UNSETENV(LICENSE_LOCATION_ENV_VAR); } - +} /* namespace test*/ -- Gitblit v1.9.1