From f5106362b82b035dcd8e487d755316e886de3440 Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周六, 23 11月 2019 22:48:18 +0800
Subject: [PATCH] signature verified, tests

---
 test/library/LicenseReader_test.cpp |  106 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 69 insertions(+), 37 deletions(-)

diff --git a/test/library/LicenseReader_test.cpp b/test/library/LicenseReader_test.cpp
index b413fcf..03ea2e8 100644
--- a/test/library/LicenseReader_test.cpp
+++ b/test/library/LicenseReader_test.cpp
@@ -1,66 +1,98 @@
-#define BOOST_TEST_MODULE "license_reader_test"
+#define BOOST_TEST_MODULE "test_license_reader"
 
 #include <boost/test/unit_test.hpp>
+#include <iostream>
+#include <vector>
 #include <stdlib.h>
 
-#include <build_properties.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, nullptr, false };
-	LicenseReader licenseReader(location);
+	const LicenseLocation location = {licLocation, nullptr};
+	LicenseReader licenseReader(&location);
 	vector<FullLicenseInfo> licenseInfos;
-	const 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, nullptr, 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;
-	const 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 ) {
+/**
+ * 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, false };
-	LicenseReader licenseReader(location);
+	// const char * envName = "MYVAR";
+	const LicenseLocation location = {licLocation, nullptr};
+	LicenseReader licenseReader(&location);
 	vector<FullLicenseInfo> licenseInfos;
-	const 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 = { nullptr, 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;
-	const 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);
 }
 
+/**
+ * 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;
+	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