1
#include <gtest/gtest.h>
2
#include <gmock/gmock.h>
4
#include <messaging/group_manager.h>
6
#include <tests/mock_group_manager.h>
13
TEST(GroupManagerTest, test_set_group_permissions_by_method)
15
auto group_manager = std::make_shared<NiceMock<MockGroupManager>>();
16
messaging::Flags<messaging::GroupPermissions> permissions = messaging::GroupPermissions::CanChangeTitle |
17
messaging::GroupPermissions::CanSetAdmin;
18
group_manager->set_permissions(permissions);
20
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanChangeTitle));
21
EXPECT_FALSE(group_manager->permissions().is_set(messaging::GroupPermissions::CanDissolve));
22
EXPECT_FALSE(group_manager->permissions().is_set(messaging::GroupPermissions::CanKick));
23
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanSetAdmin));
26
TEST(GroupManagerTest, test_set_group_permissions_by_read_reference)
28
//another way of setting the permissions
29
auto group_manager = std::make_shared<NiceMock<MockGroupManager>>();
30
group_manager->permissions() = messaging::GroupPermissions::CanDissolve |
31
messaging::GroupPermissions::CanSetAdmin | messaging::GroupPermissions::CanKick;
33
EXPECT_FALSE(group_manager->permissions().is_set(messaging::GroupPermissions::CanChangeTitle));
34
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanDissolve));
35
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanKick));
36
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanSetAdmin));
39
TEST(GroupManagerTest, test_set_group_permissions_by_or_operator)
42
auto group_manager = std::make_shared<NiceMock<MockGroupManager>>();
43
group_manager->permissions() |= messaging::GroupPermissions::CanDissolve;
44
group_manager->permissions() |= messaging::GroupPermissions::CanKick;
46
EXPECT_FALSE(group_manager->permissions().is_set(messaging::GroupPermissions::CanChangeTitle));
47
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanDissolve));
48
EXPECT_TRUE(group_manager->permissions().is_set(messaging::GroupPermissions::CanKick));
49
EXPECT_FALSE(group_manager->permissions().is_set(messaging::GroupPermissions::CanSetAdmin));