This repository has been archived by the owner on May 10, 2024. It is now read-only.
generated from LiteLDev/levilamina-plugin-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Core.cpp
75 lines (57 loc) · 2.62 KB
/
Core.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "Global.h"
#include <PermissionCore/Group.h>
#include <PermissionCore/PermissionCore.h>
#include <PermissionCore/PermissionManager.h>
#include <cassert>
#include <iostream>
#include <iterator>
#include <memory>
namespace test {
using namespace perm;
#define groupName "TestGroup"
void testCore() {
std::cout << "PermissionCore Testing..." << std::endl;
auto& manager = PermissionManager::getInstance();
auto core = manager.getPermissionCore("test");
assert(core != nullptr);
assert(core->hasGroup(groupName) == false);
assert(core->createGroup(groupName) == true);
assert(core->hasGroup(groupName) == true);
assert(core->getAllGroups().size() == 1);
assert(core->getAllGroupWithOpen().size() == 1);
assert(core->getAllGroupWithDisabled().size() == 0);
assert(core->deleteGroup(groupName) == true);
assert(core->hasGroup(groupName) == false);
core->createGroup("TestGroup2");
assert(core->hasGroup("TestGroup2") == true);
assert(core->renameGroup("TestGroup2", groupName));
assert(core->hasGroup("TestGroup2") == false);
assert(core->hasGroup(groupName) == true);
assert(core->hasGroupPermission(groupName, pm::t1) == false);
assert(core->addPermissionToGroup(groupName, "t1", pm::t1));
assert(core->hasGroupPermission(groupName, pm::t1) == true);
assert(core->isUserInGroup(groupName, "aa") == false);
assert(core->addUserToGroup(groupName, "aa", "bb") == true);
assert(core->isUserInGroup(groupName, "aa") == true);
assert(core->isUserInGroup(groupName, "bb") == true);
auto gr = core->getGroup(groupName);
assert(gr.has_value() == true);
auto gp = *gr;
assert(gp.ignoreListType == perm::group::IgnoreListType::None);
assert(gp.status == perm::group::GroupStatus::Open);
assert(gp.findUser("aa")->realName == "aa");
assert(gp.findUser("bb")->uuid == "bb");
assert(gp.findUserWithRealName("aa")->realName == "aa");
assert(gp.findUserWithUuid("bb")->uuid == "bb");
assert(gp.findPermissionWithValue(pm::t1)->value == pm::t1);
std::cout << "Test Group API:toString, Value: " << gp.toString(0) << std::endl;
assert(core->getGroupsOfUser("aa").size() == 1);
assert(core->getUserPermission("aa")->value.size() == 1);
assert(core->checkUserPermission("aa", pm::t1) == true);
assert(core->removeUserToGroup(groupName, "aa") == true);
assert(core->isUserInGroup(groupName, "aa") == false);
assert(core->removePermissionToGroup(groupName, pm::t1));
assert(core->hasGroupPermission(groupName, pm::t1) == false);
std::cout << "PermissionCore Success" << std::endl;
}
} // namespace test