Sha256: 0e59e7d3ca5490d4ca0c5ff7436a9f2f34a0c9888ade25be96e75f031db02987

Contents?: true

Size: 1.55 KB

Versions: 12

Compression:

Stored size: 1.55 KB

Contents

#include "config.h"
#include "internal.h"
#include "auth-priv.h"
#include <gtest/gtest.h>
#define LIBCOUCHBASE_INTERNAL 1
#include <libcouchbase/couchbase.h>

class CredsTest : public ::testing::Test
{
};

TEST_F(CredsTest, testCreds)
{
    lcb_t instance;
    lcb_BUCKETCRED cred;
    ASSERT_EQ(LCB_SUCCESS, lcb_create(&instance, NULL));
    lcb::Authenticator& auth = *instance->settings->auth;
    ASSERT_FALSE(auth.username().empty());
    ASSERT_EQ("default", auth.username());

    ASSERT_EQ(1, auth.buckets().size());
    ASSERT_TRUE(auth.buckets().find("default")->second.empty());

    // Try to add another user/password:
    lcb_BUCKETCRED creds = { "user2", "pass2" };
    ASSERT_EQ(LCB_SUCCESS, lcb_cntl(instance, LCB_CNTL_SET, LCB_CNTL_BUCKET_CRED, creds));
    ASSERT_EQ(2, auth.buckets().size());
    ASSERT_EQ("pass2", auth.buckets().find("user2")->second);
    ASSERT_EQ("default", auth.username());
    ASSERT_EQ("", auth.password());
    lcb_destroy(instance);
}

TEST_F(CredsTest, testSharedAuth)
{
    lcb_t instance1, instance2;
    ASSERT_EQ(LCB_SUCCESS, lcb_create(&instance1, NULL));
    ASSERT_EQ(LCB_SUCCESS, lcb_create(&instance2, NULL));

    lcb_AUTHENTICATOR *auth = lcbauth_new();
    ASSERT_EQ(1, auth->refcount());

    lcb_set_auth(instance1, auth);
    ASSERT_EQ(2, auth->refcount());

    lcb_set_auth(instance2, auth);
    ASSERT_EQ(3, auth->refcount());

    ASSERT_EQ(instance1->settings->auth, instance2->settings->auth);
    lcb_destroy(instance1);
    lcb_destroy(instance2);
    ASSERT_EQ(1, auth->refcount());
    lcbauth_unref(auth);
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
libcouchbase-0.3.3 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.3.1 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.2.0 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.1.0 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.9 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.8 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.7 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.6 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.5 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.4 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.3 ext/libcouchbase/tests/basic/t_creds.cc
libcouchbase-0.0.2 ext/libcouchbase/tests/basic/t_creds.cc