17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina Pavel Březina <pbrezina@redhat.com>
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina Copyright (C) 2013 Red Hat
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina This program is free software; you can redistribute it and/or modify
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina it under the terms of the GNU General Public License as published by
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina the Free Software Foundation; either version 3 of the License, or
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina (at your option) any later version.
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina This program is distributed in the hope that it will be useful,
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina GNU General Public License for more details.
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina You should have received a copy of the GNU General Public License
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina#include "tests/cmocka/common_mock_sysdb_objects.h"
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina /* Most attributes in sysdb are strings. Since this is only for the purpose
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina * of unit tests, we can safe ourselves some time and handle all attributes
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina * that are not listed amongst other types as string instead of invalid
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina * or unknown.
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina static const char **tables[SYSDB_ATTR_TYPE_STRING] = {
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina table_bool, table_long, table_uint32, table_time
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina for (type = 0; type < SYSDB_ATTR_TYPE_STRING; type++) {
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina /* we didn't find the attribute, consider it as string */
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březinafill_attrs(struct sysdb_attrs *attrs, va_list in_ap)
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina while ((attr = va_arg(ap, const char *)) != NULL) {
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_string(attrs, attr, va_arg(ap, const char *));
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina /* _Bool is implicitly promoted to int in variadic functions */
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_bool(attrs, attr, va_arg(ap, int));
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_long(attrs, attr, va_arg(ap, long int));
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_uint32(attrs, attr, va_arg(ap, uint32_t));
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_time_t(attrs, attr, va_arg(ap, time_t));
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina orig_dn = talloc_asprintf(attrs, "cn=%s,%s", name, base_dn);
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_string(attrs, SYSDB_ORIG_DN, orig_dn);
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_string(attrs, SYSDB_NAME, name);
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březinamock_sysdb_group_rfc2307bis(TALLOC_CTX *mem_ctx,
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina const char **members)
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina attrs = mock_sysdb_object(mem_ctx, base_dn, name,
17d37aecdf397fcb7a1d0c75adebdb25d7be112ePavel Březina ret = sysdb_attrs_add_string(attrs, SYSDB_MEMBER, members[i]);
b0fb84bb4a98d3086b78550c737ef20f63cbac26Jakub Hrozek const char *name)