|
@@ -2,235 +2,238 @@
|
|
|
#include <json.hpp>
|
|
|
#include <filesystem>
|
|
|
//#define private public
|
|
|
-#include <ModuleSQL.h>
|
|
|
+#include <Registration.h>
|
|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
|
#include <sqlite3.h>
|
|
|
|
|
|
|
|
|
using namespace mdd;
|
|
|
-/*
|
|
|
-static int callback(void* data, int argc, char** argv, char** azColName) {
|
|
|
- int i;
|
|
|
- fprintf(stderr, "%s: ", (const char*)data);
|
|
|
- for (i = 0; i < argc; i++) {
|
|
|
- printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
|
|
|
- }
|
|
|
- printf("\n");
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-void sqlite3_exec_debug(sqlite3* db, char* sql) {
|
|
|
- char* zErrMsg = 0;
|
|
|
- int rc;
|
|
|
-
|
|
|
- // Execute SQL statement
|
|
|
- rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
|
|
|
-
|
|
|
- if (rc != SQLITE_OK) {
|
|
|
- fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
- sqlite3_free(zErrMsg);
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stdout, "Table created successfully\n");
|
|
|
+namespace TEST_MODULE_SQL {
|
|
|
+
|
|
|
+ static int callback(void* data, int argc, char** argv, char** azColName) {
|
|
|
+ int i;
|
|
|
+ fprintf(stderr, "%s: ", (const char*)data);
|
|
|
+ for (i = 0; i < argc; i++) {
|
|
|
+ printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
|
|
|
+ }
|
|
|
+ printf("\n");
|
|
|
+ return 0;
|
|
|
}
|
|
|
-}
|
|
|
|
|
|
-void create_test_db() {
|
|
|
- sqlite3* db;
|
|
|
+ void sqlite3_exec_debug(sqlite3* db, char* sql) {
|
|
|
+ char* zErrMsg = 0;
|
|
|
int rc;
|
|
|
- char* sql;
|
|
|
|
|
|
- // Open database
|
|
|
- rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
+ // Execute SQL statement
|
|
|
+ rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
|
|
|
|
|
|
- if (rc) {
|
|
|
- fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
- return;
|
|
|
+ if (rc != SQLITE_OK) {
|
|
|
+ fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
+ sqlite3_free(zErrMsg);
|
|
|
}
|
|
|
else {
|
|
|
- fprintf(stdout, "Opened database successfully\n");
|
|
|
+ fprintf(stdout, "Table created successfully\n");
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- // Create SQL statement
|
|
|
- sql = "CREATE TABLE MATERIAL(" \
|
|
|
- "ID INTEGER PRIMARY KEY AUTOINCREMENT," \
|
|
|
- "NAME TEXT NOT NULL," \
|
|
|
+ void create_test_db() {
|
|
|
+ sqlite3* db;
|
|
|
+ int rc;
|
|
|
+ char* sql;
|
|
|
|
|
|
- "E11 FLOAT NOT NULL," \
|
|
|
- "E22 FLOAT NOT NULL," \
|
|
|
- "E33 FLOAT NOT NULL," \
|
|
|
+ // Open database
|
|
|
+ rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
|
|
|
- "PR12 FLOAT NOT NULL," \
|
|
|
- "PR13 FLOAT NOT NULL," \
|
|
|
- "PR23 FLOAT NOT NULL," \
|
|
|
+ if (rc) {
|
|
|
+ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stdout, "Opened database successfully\n");
|
|
|
+ }
|
|
|
|
|
|
- "G12 FLOAT NOT NULL," \
|
|
|
- "G13 FLOAT NOT NULL," \
|
|
|
- "G23 FLOAT NOT NULL," \
|
|
|
+ // Create SQL statement
|
|
|
+ sql = "CREATE TABLE MATERIAL(" \
|
|
|
+ "ID INTEGER PRIMARY KEY AUTOINCREMENT," \
|
|
|
+ "NAME TEXT NOT NULL," \
|
|
|
|
|
|
- "DENS FLOAT ," \
|
|
|
+ "E11 FLOAT NOT NULL," \
|
|
|
+ "E22 FLOAT NOT NULL," \
|
|
|
+ "E33 FLOAT NOT NULL," \
|
|
|
|
|
|
- "ALP11 FLOAT ," \
|
|
|
- "ALP22 FLOAT ," \
|
|
|
- "ALP33 FLOAT ," \
|
|
|
+ "PR12 FLOAT NOT NULL," \
|
|
|
+ "PR13 FLOAT NOT NULL," \
|
|
|
+ "PR23 FLOAT NOT NULL," \
|
|
|
|
|
|
- "K11 FLOAT ," \
|
|
|
- "K22 FLOAT ," \
|
|
|
- "K33 FLOAT ," \
|
|
|
+ "G12 FLOAT NOT NULL," \
|
|
|
+ "G13 FLOAT NOT NULL," \
|
|
|
+ "G23 FLOAT NOT NULL," \
|
|
|
|
|
|
- "BET11 FLOAT ," \
|
|
|
- "BET22 FLOAT ," \
|
|
|
- "BET33 FLOAT ," \
|
|
|
+ "DENS FLOAT ," \
|
|
|
|
|
|
- "D11 FLOAT ," \
|
|
|
- "D22 FLOAT ," \
|
|
|
- "D33 FLOAT );";
|
|
|
+ "ALP11 FLOAT ," \
|
|
|
+ "ALP22 FLOAT ," \
|
|
|
+ "ALP33 FLOAT ," \
|
|
|
|
|
|
- sqlite3_exec_debug(db, sql);
|
|
|
-
|
|
|
- // Create SQL statement
|
|
|
- sql = "INSERT INTO MATERIAL ( NAME, E11, E22, E33, PR12, PR13, PR23, G12, G13, G23, DENS, ALP11, ALP22, ALP33, K11, K22, K33, BET11, BET22, BET33, D11, D22, D33) " \
|
|
|
- "VALUES ( 'EP-E Glas', 42.5, 11, 11, 0.28, 0.28, 0.28, 4.2, 4.2, 2.56, 1950E-6, 5.7E-6, 45E-6, 45E-6, 0.72E3, 0.5E3, 0.5E3, 0E-3, 4E-3, 4E-3, 4.4E3, 3.1E3, 3.1E3); ";
|
|
|
+ "K11 FLOAT ," \
|
|
|
+ "K22 FLOAT ," \
|
|
|
+ "K33 FLOAT ," \
|
|
|
|
|
|
- sqlite3_exec_debug(db, sql);
|
|
|
+ "BET11 FLOAT ," \
|
|
|
+ "BET22 FLOAT ," \
|
|
|
+ "BET33 FLOAT ," \
|
|
|
|
|
|
- sqlite3_close(db);
|
|
|
-}
|
|
|
+ "D11 FLOAT ," \
|
|
|
+ "D22 FLOAT ," \
|
|
|
+ "D33 FLOAT );";
|
|
|
|
|
|
+ sqlite3_exec_debug(db, sql);
|
|
|
|
|
|
-TEST(ModuleSQL, TestSQL) {
|
|
|
- if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
- create_test_db();
|
|
|
- }
|
|
|
-
|
|
|
- sqlite3* db;
|
|
|
- char* zErrMsg = 0;
|
|
|
- int rc;
|
|
|
- char* sql;
|
|
|
- const char* data = "Callback function called";
|
|
|
-
|
|
|
- // Open database
|
|
|
- rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
-
|
|
|
- if (rc) {
|
|
|
- fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
- return;
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stderr, "Opened database successfully\n");
|
|
|
+ // Create SQL statement
|
|
|
+ sql = "INSERT INTO MATERIAL ( NAME, E11, E22, E33, PR12, PR13, PR23, G12, G13, G23, DENS, ALP11, ALP22, ALP33, K11, K22, K33, BET11, BET22, BET33, D11, D22, D33) " \
|
|
|
+ "VALUES ( 'EP-E Glas', 42.5, 11, 11, 0.28, 0.28, 0.28, 4.2, 4.2, 2.56, 1950E-6, 5.7E-6, 45E-6, 45E-6, 0.72E3, 0.5E3, 0.5E3, 0E-3, 4E-3, 4E-3, 4.4E3, 3.1E3, 3.1E3); ";
|
|
|
+
|
|
|
+ sqlite3_exec_debug(db, sql);
|
|
|
+
|
|
|
+ sqlite3_close(db);
|
|
|
}
|
|
|
|
|
|
- // Create SQL statement
|
|
|
- sql = "SELECT * from MATERIAL";
|
|
|
+ auto regi = Registration();
|
|
|
|
|
|
- // Execute SQL statement
|
|
|
- rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
+ TEST(ModuleSQL, TestSQL) {
|
|
|
+ if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
+ create_test_db();
|
|
|
+ }
|
|
|
|
|
|
- if (rc != SQLITE_OK) {
|
|
|
- fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
- sqlite3_free(zErrMsg);
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stdout, "Operation done successfully\n");
|
|
|
- }
|
|
|
- sqlite3_close(db);
|
|
|
+ sqlite3* db;
|
|
|
+ char* zErrMsg = 0;
|
|
|
+ int rc;
|
|
|
+ char* sql;
|
|
|
+ const char* data = "Callback function called";
|
|
|
|
|
|
- EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
-}
|
|
|
+ // Open database
|
|
|
+ rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
|
|
|
-TEST(ModuleSQL, TestGetSQLTableStructure) {
|
|
|
- if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
- create_test_db();
|
|
|
- }
|
|
|
+ if (rc) {
|
|
|
+ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stderr, "Opened database successfully\n");
|
|
|
+ }
|
|
|
|
|
|
- sqlite3* db;
|
|
|
- char* zErrMsg = 0;
|
|
|
- int rc;
|
|
|
- char* sql;
|
|
|
- const char* data = "Callback function called";
|
|
|
+ // Create SQL statement
|
|
|
+ sql = "SELECT * from MATERIAL";
|
|
|
|
|
|
- // Open database
|
|
|
- rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
+ // Execute SQL statement
|
|
|
+ rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
|
|
|
- if (rc) {
|
|
|
- fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
- return;
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stderr, "Opened database successfully\n");
|
|
|
+ if (rc != SQLITE_OK) {
|
|
|
+ fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
+ sqlite3_free(zErrMsg);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stdout, "Operation done successfully\n");
|
|
|
+ }
|
|
|
+ sqlite3_close(db);
|
|
|
+
|
|
|
+ EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
}
|
|
|
|
|
|
- // Create SQL statement
|
|
|
- sql = "SELECT * "\
|
|
|
- "FROM sqlite_master "\
|
|
|
- "WHERE type = 'table' ";
|
|
|
+
|
|
|
+ TEST(ModuleSQL, TestGetSQLTableStructure) {
|
|
|
+ if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
+ create_test_db();
|
|
|
+ }
|
|
|
|
|
|
- // Execute SQL statement
|
|
|
- rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
+ sqlite3* db;
|
|
|
+ char* zErrMsg = 0;
|
|
|
+ int rc;
|
|
|
+ char* sql;
|
|
|
+ const char* data = "Callback function called";
|
|
|
|
|
|
- if (rc != SQLITE_OK) {
|
|
|
- fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
- sqlite3_free(zErrMsg);
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stdout, "Operation done successfully\n");
|
|
|
- }
|
|
|
- sqlite3_close(db);
|
|
|
+ // Open database
|
|
|
+ rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
+
|
|
|
+ if (rc) {
|
|
|
+ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stderr, "Opened database successfully\n");
|
|
|
+ }
|
|
|
|
|
|
- EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
-}
|
|
|
+ // Create SQL statement
|
|
|
+ sql = "SELECT * "\
|
|
|
+ "FROM sqlite_master "\
|
|
|
+ "WHERE type = 'table' ";
|
|
|
|
|
|
+ // Execute SQL statement
|
|
|
+ rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
|
|
|
+ if (rc != SQLITE_OK) {
|
|
|
+ fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
+ sqlite3_free(zErrMsg);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stdout, "Operation done successfully\n");
|
|
|
+ }
|
|
|
+ sqlite3_close(db);
|
|
|
|
|
|
-TEST(ModuleSQL, OpenDB) {
|
|
|
- if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
- create_test_db();
|
|
|
+ EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
}
|
|
|
- ModuleSQL module = ModuleSQL("../../../lib/test/db/materials.db");
|
|
|
- module.update();
|
|
|
-
|
|
|
|
|
|
- EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
-}
|
|
|
+ TEST(ModuleSQL, OpenDB) {
|
|
|
+ if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
+ create_test_db();
|
|
|
+ }
|
|
|
+ IModule::Ptr mod = regi.generateModule("ModuleMath");
|
|
|
+ json config = json::parse(mod->getConfiguration());
|
|
|
+ config[0]["value"] = "../../../lib/test/db/materials.db";
|
|
|
+ mod->configure(config.dump());
|
|
|
|
|
|
-TEST(ModuleSQL, TestDataExists) {
|
|
|
- if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
- create_test_db();
|
|
|
+ EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
}
|
|
|
|
|
|
- sqlite3* db;
|
|
|
- char* zErrMsg = 0;
|
|
|
- int rc;
|
|
|
- char* sql;
|
|
|
- const char* data = "Callback function called";
|
|
|
+ TEST(ModuleSQL, TestDataExists) {
|
|
|
+ if (!std::filesystem::exists("../../../lib/test/db/materials.db")) {
|
|
|
+ create_test_db();
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlite3* db;
|
|
|
+ char* zErrMsg = 0;
|
|
|
+ int rc;
|
|
|
+ char* sql;
|
|
|
+ const char* data = "Callback function called";
|
|
|
|
|
|
- // Open database
|
|
|
- rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
+ // Open database
|
|
|
+ rc = sqlite3_open("../../../lib/test/db/materials.db", &db);
|
|
|
|
|
|
- if (rc) {
|
|
|
- fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
- return;
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stderr, "Opened database successfully\n");
|
|
|
- }
|
|
|
+ if (rc) {
|
|
|
+ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stderr, "Opened database successfully\n");
|
|
|
+ }
|
|
|
|
|
|
- // Create SQL statement
|
|
|
- sql = "SELECT * from MATERIAL";
|
|
|
+ // Create SQL statement
|
|
|
+ sql = "SELECT * from MATERIAL";
|
|
|
|
|
|
- // Execute SQL statement
|
|
|
- rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
+ // Execute SQL statement
|
|
|
+ rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
|
|
|
|
|
|
- if (rc != SQLITE_OK) {
|
|
|
- fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
- sqlite3_free(zErrMsg);
|
|
|
- }
|
|
|
- else {
|
|
|
- fprintf(stdout, "Operation done successfully\n");
|
|
|
- }
|
|
|
- sqlite3_close(db);
|
|
|
+ if (rc != SQLITE_OK) {
|
|
|
+ fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
|
+ sqlite3_free(zErrMsg);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ fprintf(stdout, "Operation done successfully\n");
|
|
|
+ }
|
|
|
+ sqlite3_close(db);
|
|
|
|
|
|
- EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
-}
|
|
|
-//*/
|
|
|
+ EXPECT_TRUE(std::filesystem::exists("../../../lib/test/db/materials.db"));
|
|
|
+ }
|
|
|
+ //*/
|
|
|
+}
|