user.cpp 4.2 KB
Newer Older
S
Shengliang Guan 已提交
1
/**
S
Shengliang Guan 已提交
2
 * @file user.cpp
S
Shengliang Guan 已提交
3
 * @author slguan (slguan@taosdata.com)
S
Shengliang Guan 已提交
4
 * @brief DNODE module user-msg tests
S
Shengliang Guan 已提交
5
 * @version 0.1
S
Shengliang Guan 已提交
6
 * @date 2021-12-15
S
Shengliang Guan 已提交
7
 *
S
Shengliang Guan 已提交
8
 * @copyright Copyright (c) 2021
S
Shengliang Guan 已提交
9 10 11
 *
 */

S
Shengliang Guan 已提交
12
#include "base.h"
S
Shengliang Guan 已提交
13 14 15

class DndTestUser : public ::testing::Test {
 protected:
S
Shengliang Guan 已提交
16 17
  static void SetUpTestSuite() { test.Init("/tmp/dnode_test_user", 9140); }
  static void TearDownTestSuite() { test.Cleanup(); }
S
Shengliang Guan 已提交
18

S
Shengliang Guan 已提交
19
  static Testbase test;
S
Shengliang Guan 已提交
20

S
Shengliang Guan 已提交
21 22 23 24 25
 public:
  void SetUp() override {}
  void TearDown() override {}
};

S
Shengliang Guan 已提交
26
Testbase DndTestUser::test;
S
Shengliang Guan 已提交
27

S
Shengliang Guan 已提交
28
TEST_F(DndTestUser, 01_ShowUser) {
S
Shengliang Guan 已提交
29 30 31 32 33 34 35 36 37 38
  test.SendShowMetaMsg(TSDB_MGMT_TABLE_USER, "");
  CHECK_META("show users", 4);

  CHECK_SCHEMA(0, TSDB_DATA_TYPE_BINARY, TSDB_USER_LEN + VARSTR_HEADER_SIZE, "name");
  CHECK_SCHEMA(1, TSDB_DATA_TYPE_BINARY, 10 + VARSTR_HEADER_SIZE, "privilege");
  CHECK_SCHEMA(2, TSDB_DATA_TYPE_TIMESTAMP, 8, "create_time");
  CHECK_SCHEMA(3, TSDB_DATA_TYPE_BINARY, TSDB_USER_LEN + VARSTR_HEADER_SIZE, "account");

  test.SendShowRetrieveMsg();
  EXPECT_EQ(test.GetShowRows(), 1);
S
Shengliang Guan 已提交
39 40 41 42 43

  CheckBinary("root", TSDB_USER_LEN);
  CheckBinary("super", 10);
  CheckTimestamp();
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
44 45
}

S
Shengliang Guan 已提交
46
TEST_F(DndTestUser, 02_Create_Drop_Alter_User) {
S
Shengliang Guan 已提交
47
  {
S
Shengliang Guan 已提交
48 49 50
    int32_t contLen = sizeof(SCreateUserMsg);

    SCreateUserMsg* pReq = (SCreateUserMsg*)rpcMallocCont(contLen);
S
Shengliang Guan 已提交
51 52 53
    strcpy(pReq->user, "u1");
    strcpy(pReq->pass, "p1");

H
Hongze Cheng 已提交
54
    SRpcMsg* pMsg = test.SendMsg(TDMT_MND_CREATE_USER, pReq, contLen);
S
Shengliang Guan 已提交
55 56 57
    ASSERT_NE(pMsg, nullptr);
    ASSERT_EQ(pMsg->code, 0);
  }
S
Shengliang Guan 已提交
58

S
Shengliang Guan 已提交
59
  {
S
Shengliang Guan 已提交
60 61 62
    int32_t contLen = sizeof(SCreateUserMsg);

    SCreateUserMsg* pReq = (SCreateUserMsg*)rpcMallocCont(contLen);
S
Shengliang Guan 已提交
63 64
    strcpy(pReq->user, "u2");
    strcpy(pReq->pass, "p2");
S
Shengliang Guan 已提交
65

H
Hongze Cheng 已提交
66
    SRpcMsg* pMsg = test.SendMsg(TDMT_MND_CREATE_USER, pReq, contLen);
S
Shengliang Guan 已提交
67 68 69
    ASSERT_NE(pMsg, nullptr);
    ASSERT_EQ(pMsg->code, 0);
  }
S
Shengliang Guan 已提交
70

S
Shengliang Guan 已提交
71 72 73 74 75 76
  test.SendShowMetaMsg(TSDB_MGMT_TABLE_USER, "");
  CHECK_META("show users", 4);

  test.SendShowRetrieveMsg();
  EXPECT_EQ(test.GetShowRows(), 3);

S
Shengliang Guan 已提交
77 78
  CheckBinary("u1", TSDB_USER_LEN);
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
79
  CheckBinary("u2", TSDB_USER_LEN);
S
Shengliang Guan 已提交
80 81
  CheckBinary("normal", 10);
  CheckBinary("super", 10);
S
Shengliang Guan 已提交
82 83
  CheckBinary("normal", 10);
  CheckTimestamp();
S
Shengliang Guan 已提交
84 85 86 87
  CheckTimestamp();
  CheckTimestamp();
  CheckBinary("root", TSDB_USER_LEN);
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
88
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
89

S
Shengliang Guan 已提交
90
  {
S
Shengliang Guan 已提交
91 92 93
    int32_t contLen = sizeof(SAlterUserMsg);

    SAlterUserMsg* pReq = (SAlterUserMsg*)rpcMallocCont(contLen);
S
Shengliang Guan 已提交
94 95
    strcpy(pReq->user, "u1");
    strcpy(pReq->pass, "p2");
S
Shengliang Guan 已提交
96

H
Hongze Cheng 已提交
97
    SRpcMsg* pMsg = test.SendMsg(TDMT_MND_ALTER_USER, pReq, contLen);
S
Shengliang Guan 已提交
98 99 100
    ASSERT_NE(pMsg, nullptr);
    ASSERT_EQ(pMsg->code, 0);
  }
S
Shengliang Guan 已提交
101 102 103 104 105 106 107

  test.SendShowMetaMsg(TSDB_MGMT_TABLE_USER, "");
  CHECK_META("show users", 4);

  test.SendShowRetrieveMsg();
  EXPECT_EQ(test.GetShowRows(), 3);

S
Shengliang Guan 已提交
108 109
  CheckBinary("u1", TSDB_USER_LEN);
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
110
  CheckBinary("u2", TSDB_USER_LEN);
S
Shengliang Guan 已提交
111 112
  CheckBinary("normal", 10);
  CheckBinary("super", 10);
S
Shengliang Guan 已提交
113 114
  CheckBinary("normal", 10);
  CheckTimestamp();
S
Shengliang Guan 已提交
115 116 117 118
  CheckTimestamp();
  CheckTimestamp();
  CheckBinary("root", TSDB_USER_LEN);
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
119
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
120

S
Shengliang Guan 已提交
121
  {
S
Shengliang Guan 已提交
122
    int32_t contLen = sizeof(SDropUserMsg);
S
Shengliang Guan 已提交
123

S
Shengliang Guan 已提交
124 125
    SDropUserMsg* pReq = (SDropUserMsg*)rpcMallocCont(contLen);
    strcpy(pReq->user, "u1");
S
Shengliang Guan 已提交
126

H
Hongze Cheng 已提交
127
    SRpcMsg* pMsg = test.SendMsg(TDMT_MND_DROP_USER, pReq, contLen);
S
Shengliang Guan 已提交
128 129 130
    ASSERT_NE(pMsg, nullptr);
    ASSERT_EQ(pMsg->code, 0);
  }
S
Shengliang Guan 已提交
131 132 133 134 135 136 137

  test.SendShowMetaMsg(TSDB_MGMT_TABLE_USER, "");
  CHECK_META("show users", 4);

  test.SendShowRetrieveMsg();
  EXPECT_EQ(test.GetShowRows(), 2);

S
Shengliang Guan 已提交
138
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
139
  CheckBinary("u2", TSDB_USER_LEN);
S
Shengliang Guan 已提交
140
  CheckBinary("super", 10);
S
Shengliang Guan 已提交
141 142
  CheckBinary("normal", 10);
  CheckTimestamp();
S
Shengliang Guan 已提交
143 144
  CheckTimestamp();
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
145 146
  CheckBinary("root", TSDB_USER_LEN);

S
Shengliang Guan 已提交
147
  // restart
S
Shengliang Guan 已提交
148
  test.Restart();
S
Shengliang Guan 已提交
149

S
Shengliang Guan 已提交
150 151
  test.SendShowMetaMsg(TSDB_MGMT_TABLE_USER, "");
  CHECK_META("show users", 4);
S
Shengliang Guan 已提交
152

S
Shengliang Guan 已提交
153 154
  test.SendShowRetrieveMsg();
  EXPECT_EQ(test.GetShowRows(), 2);
S
Shengliang Guan 已提交
155 156 157 158 159 160 161 162 163

  CheckBinary("root", TSDB_USER_LEN);
  CheckBinary("u2", TSDB_USER_LEN);
  CheckBinary("super", 10);
  CheckBinary("normal", 10);
  CheckTimestamp();
  CheckTimestamp();
  CheckBinary("root", TSDB_USER_LEN);
  CheckBinary("root", TSDB_USER_LEN);
S
Shengliang Guan 已提交
164
}