63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
#include <cassert>
|
|
#include <vector>
|
|
#include <stdexcept>
|
|
#include <engine/core/engine.hpp>
|
|
#include <engine/core/engine_db_provider.hpp>
|
|
|
|
/// @brief Проверка на создание экземпляра
|
|
void testProviderCreation()
|
|
{
|
|
MscEngine engine({});
|
|
|
|
auto dbp1 = engine.createDBProvider();
|
|
assert(dbp1.get() != nullptr);
|
|
}
|
|
|
|
/// @brief Проверка на создание экземпляра с некорректным путём файла
|
|
void testIncorrectFilePath()
|
|
{
|
|
MscEngine engine({});
|
|
|
|
try
|
|
{
|
|
engine.createDBProvider("/i/am/an/incorrect/path/to/file.txt");
|
|
assert(false);
|
|
}
|
|
catch (const std::runtime_error &error)
|
|
{
|
|
}
|
|
}
|
|
|
|
/// @brief Проверка на успешное выполнение корректного выражения
|
|
void testValidStatement()
|
|
{
|
|
MscEngine engine({});
|
|
auto dbp = engine.createDBProvider();
|
|
dbp.get()->execute("SELECT 'hello, world' AS message;");
|
|
}
|
|
|
|
void testInvalidStatement()
|
|
{
|
|
MscEngine engine({});
|
|
auto dbp = engine.createDBProvider();
|
|
|
|
try
|
|
{
|
|
dbp.get()->execute("SELECT * FROM nonexistentdatabase ABC");
|
|
assert(false);
|
|
}
|
|
catch (const std::runtime_error &error)
|
|
{
|
|
}
|
|
}
|
|
|
|
int main()
|
|
{
|
|
testProviderCreation();
|
|
testIncorrectFilePath();
|
|
testValidStatement();
|
|
testInvalidStatement();
|
|
|
|
return 0;
|
|
}
|