From 0e379161e0d2f8429300622fa7fbd499e828e44c Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Sun, 17 Mar 2019 14:14:10 +0100 Subject: [PATCH] added unit tests for credentials --- CMakeLists.txt | 1 + lib/wsfs/adapter/credentials.c | 2 +- lib/wsfs/adapter/credentials_intern.h | 2 +- test/test_credentials.cc | 70 +++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 test/test_credentials.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 533883e..501c38d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,6 +210,7 @@ add_executable(alltests test/test_timepoint.cc test/test_timer.cc test/test_url.cc + test/test_credentials.cc ${WSFS_COMMON_SOURCES} ) diff --git a/lib/wsfs/adapter/credentials.c b/lib/wsfs/adapter/credentials.c index 40df93f..fa8b09e 100644 --- a/lib/wsfs/adapter/credentials.c +++ b/lib/wsfs/adapter/credentials.c @@ -11,7 +11,7 @@ void wsfs_credentials_init( json_incref(credentials->data); } -void wsfs_credentails_cleanup( +void wsfs_credentials_cleanup( struct wsfs_credentials * credentials) { free(credentials->type); diff --git a/lib/wsfs/adapter/credentials_intern.h b/lib/wsfs/adapter/credentials_intern.h index d0c6f44..026c515 100644 --- a/lib/wsfs/adapter/credentials_intern.h +++ b/lib/wsfs/adapter/credentials_intern.h @@ -20,7 +20,7 @@ extern void wsfs_credentials_init( char const * type, json_t * data); -extern void wsfs_credentails_cleanup( +extern void wsfs_credentials_cleanup( struct wsfs_credentials * credentials); #ifdef __cplusplus diff --git a/test/test_credentials.cc b/test/test_credentials.cc new file mode 100644 index 0000000..9862d78 --- /dev/null +++ b/test/test_credentials.cc @@ -0,0 +1,70 @@ +#include + +#include "wsfs/adapter/credentials_intern.h" +#include + +TEST(Credentials, Type) +{ + struct wsfs_credentials creds; + + wsfs_credentials_init(&creds, "test", nullptr); + ASSERT_STREQ("test", wsfs_credentials_type(&creds)); + wsfs_credentials_cleanup(&creds); +} + +TEST(Credentials, Get) +{ + struct wsfs_credentials creds; + json_t * data = json_object(); + json_object_set_new(data, "username", json_string("bob")); + json_object_set_new(data, "password", json_string("")); + + wsfs_credentials_init(&creds, "username", data); + ASSERT_STREQ("username", wsfs_credentials_type(&creds)); + ASSERT_STREQ("bob", wsfs_credentials_get(&creds, "username")); + ASSERT_STREQ("", wsfs_credentials_get(&creds, "password")); + + wsfs_credentials_cleanup(&creds); + json_decref(data); +} + +TEST(Credentials, FailedToGetNonexistingValue) +{ + struct wsfs_credentials creds; + json_t * data = json_object(); + + wsfs_credentials_init(&creds, "username", data); + ASSERT_STREQ("username", wsfs_credentials_type(&creds)); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "username")); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "password")); + + wsfs_credentials_cleanup(&creds); + json_decref(data); +} + +TEST(Credentials, FailedToGetWithoutData) +{ + struct wsfs_credentials creds; + + wsfs_credentials_init(&creds, "username", nullptr); + ASSERT_STREQ("username", wsfs_credentials_type(&creds)); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "username")); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "password")); + + wsfs_credentials_cleanup(&creds); +} + +TEST(Credentials, FailedToGetWrongDataType) +{ + struct wsfs_credentials creds; + json_t * data = json_string("invalid_creds"); + + wsfs_credentials_init(&creds, "username", data); + ASSERT_STREQ("username", wsfs_credentials_type(&creds)); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "username")); + ASSERT_STREQ(nullptr, wsfs_credentials_get(&creds, "password")); + + wsfs_credentials_cleanup(&creds); + json_decref(data); +} +