//===-- UserIDResolverTest.cpp --------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "lldb/Utility/UserIDResolver.h" #include "gmock/gmock.h" using namespace lldb_private; using namespace testing; namespace { class TestUserIDResolver : public UserIDResolver { public: MOCK_METHOD1(DoGetUserName, llvm::Optional(id_t uid)); MOCK_METHOD1(DoGetGroupName, llvm::Optional(id_t gid)); }; } // namespace TEST(UserIDResolver, GetUserName) { StrictMock r; llvm::StringRef user47("foo"); EXPECT_CALL(r, DoGetUserName(47)).Times(1).WillOnce(Return(user47.str())); EXPECT_CALL(r, DoGetUserName(42)).Times(1).WillOnce(Return(llvm::None)); // Call functions twice to make sure the caching works. EXPECT_EQ(user47, r.GetUserName(47)); EXPECT_EQ(user47, r.GetUserName(47)); EXPECT_EQ(llvm::None, r.GetUserName(42)); EXPECT_EQ(llvm::None, r.GetUserName(42)); } TEST(UserIDResolver, GetGroupName) { StrictMock r; llvm::StringRef group47("foo"); EXPECT_CALL(r, DoGetGroupName(47)).Times(1).WillOnce(Return(group47.str())); EXPECT_CALL(r, DoGetGroupName(42)).Times(1).WillOnce(Return(llvm::None)); // Call functions twice to make sure the caching works. EXPECT_EQ(group47, r.GetGroupName(47)); EXPECT_EQ(group47, r.GetGroupName(47)); EXPECT_EQ(llvm::None, r.GetGroupName(42)); EXPECT_EQ(llvm::None, r.GetGroupName(42)); }