diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 59060e85..84022253 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -23,6 +23,7 @@ add_executable( unit/deserialize_row.cpp unit/value.cpp unit/row.cpp + unit/error.cpp ) # A codegen issue in MSVC C++17 makes gmock expectations not work if (NOT MSVC) diff --git a/test/unit/error.cpp b/test/unit/error.cpp new file mode 100644 index 00000000..1e5cac8e --- /dev/null +++ b/test/unit/error.cpp @@ -0,0 +1,33 @@ +/* + * error.cpp + * + * Created on: Jan 19, 2020 + * Author: ruben + */ + +#include +#include "mysql/error.hpp" + +using namespace testing; +using mysql::Error; +using mysql::detail::error_to_string; + +TEST(Error, ErrorToString_Ok_ReturnsOk) +{ + EXPECT_STREQ(error_to_string(Error::ok), "no error"); +} + +TEST(Error, ErrorToString_MysqlAsioError_ReturnsDescription) +{ + EXPECT_STREQ(error_to_string(Error::sequence_number_mismatch), "Mismatched sequence numbers"); +} + +TEST(Error, ErrorToString_ServerError_ReturnsEnumName) +{ + EXPECT_STREQ(error_to_string(Error::bad_db_error), "bad_db_error"); +} + +TEST(Error, ErrorToString_UnknownError_ReturnsUnknown) +{ + EXPECT_STREQ(error_to_string(static_cast(0xfffefdfc)), ""); +}