diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-09-21 16:55:21 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-10-06 14:19:37 +0200 |
commit | d7d3ee1b8ab7a05129c83da8a185351d7c751c1c (patch) | |
tree | f2c2d9a2626791c412f661d08bed43c8eca69f99 /src/tests/sysdb-tests.c | |
parent | e4f6562e4043aa645088862d1cc657c3eff43c49 (diff) | |
download | sssd-d7d3ee1b8ab7a05129c83da8a185351d7c751c1c.tar.gz sssd-d7d3ee1b8ab7a05129c83da8a185351d7c751c1c.tar.xz sssd-d7d3ee1b8ab7a05129c83da8a185351d7c751c1c.zip |
SYSDB: move sysdb_get_real_name() from sysdb.c to sysdb_search.c
The sysdb.c should be reserved for utility and setup functions. Search
functions belong to sysdb_search.c Keeping functions in specialized
modules helps to maintain nice dependencies and in overall makes unit
testing easier.
Moreover, the function was not unit tested, which needed fixing.
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/tests/sysdb-tests.c')
-rw-r--r-- | src/tests/sysdb-tests.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c index deb3568e2..8ba214c83 100644 --- a/src/tests/sysdb-tests.c +++ b/src/tests/sysdb-tests.c @@ -3455,6 +3455,45 @@ START_TEST (test_sysdb_attrs_to_list) } END_TEST +START_TEST(test_sysdb_get_real_name) +{ + errno_t ret; + struct sysdb_test_ctx *test_ctx; + struct sysdb_attrs *user_attrs; + const char *str; + + ret = setup_sysdb_tests(&test_ctx); + fail_if(ret != EOK, "Could not set up the test"); + + user_attrs = sysdb_new_attrs(test_ctx); + fail_unless(user_attrs != NULL, "sysdb_new_attrs failed"); + + ret = sysdb_attrs_add_string(user_attrs, SYSDB_NAME_ALIAS, "alias"); + fail_unless(ret == EOK, "sysdb_attrs_add_string failed."); + + ret = sysdb_attrs_add_string(user_attrs, SYSDB_UPN, "foo@bar"); + fail_unless(ret == EOK, "sysdb_attrs_add_string failed."); + + ret = sysdb_store_user(test_ctx->domain, "RealName", + NULL, 22345, 0, "gecos", + "/home/realname", "/bin/bash", + NULL, user_attrs, NULL, -1, 0); + fail_unless(ret == EOK, "sysdb_store_user failed."); + + /* Get real, uncanonicalized name as string */ + ret = sysdb_get_real_name(test_ctx, test_ctx->domain, "alias", &str); + fail_unless(ret == EOK, "sysdb_get_real_name failed."); + fail_unless(strcmp(str, "RealName") == 0, "Expected [%s], got [%s].", + "RealName", str); + + ret = sysdb_get_real_name(test_ctx, test_ctx->domain, "foo@bar", &str); + fail_unless(ret == EOK, "sysdb_get_real_name failed."); + fail_unless(strcmp(str, "RealName") == 0, "Expected [%s], got [%s].", + "foo@bar", str); + +} +END_TEST + START_TEST(test_group_rename) { struct sysdb_test_ctx *test_ctx; @@ -4549,6 +4588,7 @@ START_TEST (test_sysdb_search_return_ENOENT) struct ldb_message **msgs = NULL; struct ldb_result *res = NULL; size_t count; + const char *str = NULL; /* Setup */ ret = setup_sysdb_tests(&test_ctx); @@ -4562,6 +4602,12 @@ START_TEST (test_sysdb_search_return_ENOENT) ret, strerror(ret)); talloc_zfree(msg); + ret = sysdb_get_real_name(test_ctx, test_ctx->domain, + "nonexisting_user", &str); + fail_unless(ret == ENOENT, "sysdb_get_real_name error [%d][%s].", + ret, strerror(ret)); + talloc_zfree(str); + ret = sysdb_search_user_by_uid(test_ctx, test_ctx->domain, 1234, NULL, &msg); fail_unless(ret == ENOENT, "sysdb_search_user_by_uid error [%d][%s].", @@ -5893,6 +5939,9 @@ Suite *create_sysdb_suite(void) /* Test SID string searches */ tcase_add_test(tc_sysdb, test_sysdb_search_sid_str); + /* Test canonicalizing names */ + tcase_add_test(tc_sysdb, test_sysdb_get_real_name); + /* Test user and group renames */ tcase_add_test(tc_sysdb, test_group_rename); tcase_add_test(tc_sysdb, test_user_rename); |