diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c27feb2..c52e256 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,6 +5,9 @@ link_directories(${OPENSSL_LIBRARIES}) SET(CERT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/certs") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERT_ROOT_DIR=\"\\\"${CERT_ROOT_DIR}\\\"\"") +add_executable(test_jwt_object test_jwt_object.cc) +target_link_libraries(test_jwt_object ssl crypto gtest) + add_executable(test_jwt_encode test_jwt_encode.cc) target_link_libraries(test_jwt_encode ssl crypto gtest) diff --git a/tests/test_jwt_object.cc b/tests/test_jwt_object.cc new file mode 100644 index 0000000..5b19955 --- /dev/null +++ b/tests/test_jwt_object.cc @@ -0,0 +1,35 @@ +#include "gtest/gtest.h" +#include "jwt/jwt.hpp" + +namespace { + +struct Wrapper +{ + // The std::move here is required to resolve to the move ctor + // rather than to the universal reference ctor. + Wrapper(jwt::jwt_object&& obj) : object{std::move(obj)} {} + jwt::jwt_object object; +}; + +} // END namespace + +TEST (ObjectTest, MoveConstructor) +{ + using namespace jwt::params; + + jwt::jwt_object obj{algorithm("hs256"), secret("secret")}; + + obj.add_claim("iss", "arun.muralidharan"); + + auto wrapper = Wrapper{std::move(obj)}; + + EXPECT_EQ(wrapper.object.header().algo(), jwt::algorithm::HS256); + EXPECT_EQ(wrapper.object.secret(), "secret"); + EXPECT_TRUE(wrapper.object.payload().has_claim_with_value("iss", "arun.muralidharan")); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}