From 214e0e7bdc3dc49c4eed8dcf161ddd4e96198c7a Mon Sep 17 00:00:00 2001 From: caozhijun Date: Wed, 26 Feb 2025 11:02:21 +0800 Subject: [PATCH] Add coverage cases Signed-off-by: c459517356 --- .../service/test/BUILD.gn | 16 ++ .../service/test/kvdb_service_impl_test.cpp | 11 +- .../service/test/mock/access_token_mock.h | 1 + .../test/mock/device_manager_adapter_mock.cpp | 17 ++ .../test/mock/device_manager_adapter_mock.h | 6 + .../test/mock/meta_data_manager_mock.cpp | 10 +- .../test/mock/meta_data_manager_mock.h | 7 + .../test/permit_delegate_mock_test.cpp | 157 ++++++++++++++++-- 8 files changed, 204 insertions(+), 21 deletions(-) diff --git a/services/distributeddataservice/service/test/BUILD.gn b/services/distributeddataservice/service/test/BUILD.gn index 90ee72eb3..d12b01361 100644 --- a/services/distributeddataservice/service/test/BUILD.gn +++ b/services/distributeddataservice/service/test/BUILD.gn @@ -1087,8 +1087,13 @@ ohos_unittest("KvdbServiceImplTest") { cflags = [ "-Dprivate=public", "-Dprotected=public", + "-frtti", ] + remove_configs = [ "//build/config/compiler:no_rtti" ] + + cflags_cc = cflags + external_deps = [ "access_token:libaccesstoken_sdk", "access_token:libnativetoken", @@ -1097,6 +1102,7 @@ ohos_unittest("KvdbServiceImplTest") { "dataclassification:data_transit_mgr", "device_auth:deviceauth_sdk", "googletest:gmock_main", + "googletest:gtest", "hilog:libhilog", "hisysevent:libhisysevent", "huks:libhukssdk", @@ -1314,6 +1320,9 @@ ohos_unittest("PermitDelegateMockTest") { ] sources = [ + "${data_service_path}/framework/metadata/appid_meta_data.cpp", + "${data_service_path}/framework/metadata/store_meta_data.cpp", + "${data_service_path}/framework/metadata/strategy_meta_data.cpp", "${data_service_path}/service/kvdb/user_delegate.cpp", "${data_service_path}/service/permission/src/permission_validator.cpp", "${data_service_path}/service/permission/src/permit_delegate.cpp", @@ -1325,9 +1334,13 @@ ohos_unittest("PermitDelegateMockTest") { cflags = [ "-Dprivate=public", "-Dprotected=public", + "-frtti", ] + remove_configs = [ "//build/config/compiler:no_rtti" ] + cflags_cc = cflags + defines = [ "TEST_ON_DEVICE", "OPENSSL_SUPPRESS_DEPRECATED", @@ -1341,9 +1354,12 @@ ohos_unittest("PermitDelegateMockTest") { external_deps = [ "access_token:libaccesstoken_sdk", + "access_token:libnativetoken", + "access_token:libtoken_setproc", "c_utils:utils", "device_manager:devicemanagersdk", "googletest:gmock_main", + "googletest:gtest", "googletest:gtest_main", "hilog:libhilog", "json:nlohmann_json_static", diff --git a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp index 8caefa855..1a765a13a 100644 --- a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp +++ b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include "bootstrap.h" @@ -557,11 +558,11 @@ HWTEST_F(KvdbServiceImplTest, IsNeedMetaSyncTest001, TestSize.Level0) ASSERT_EQ(status1, Status::SUCCESS); StoreMetaData meta = kvdbServiceImpl_->GetStoreMetaData(appId, storeId); std::vector uuids{"uuidtest01"}; - EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::_, testing::_)) + EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::An(), testing::_)) .WillOnce(testing::Return(true)).WillRepeatedly(testing::Return(true)); auto status = kvdbServiceImpl_->IsNeedMetaSync(meta, uuids); ASSERT_EQ(status, false); - EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::_, testing::_)) + EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::An(), testing::_)) .WillOnce(testing::Return(false)).WillRepeatedly(testing::Return(false)); status = kvdbServiceImpl_->IsNeedMetaSync(meta, uuids); ASSERT_EQ(status, true); @@ -579,11 +580,11 @@ HWTEST_F(KvdbServiceImplTest, GetDistributedDataMetaTest001, TestSize.Level0) ASSERT_NE(kvStore, nullptr); ASSERT_EQ(status, Status::SUCCESS); std::string deviceId = "KvdbServiceImplTest_deviceId"; - EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::_, testing::_)) + EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::An(), testing::_)) .WillOnce(testing::Return(false)).WillRepeatedly(testing::Return(false)); auto meta = kvdbServiceImpl_->GetDistributedDataMeta(deviceId); ASSERT_EQ(meta.user, "0"); - EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::_, testing::_)) + EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::An(), testing::_)) .WillOnce(testing::Return(true)).WillRepeatedly(testing::Return(true)); meta = kvdbServiceImpl_->GetDistributedDataMeta(deviceId); ASSERT_EQ(meta.deviceId, deviceId); @@ -897,7 +898,7 @@ HWTEST_F(KvdbServiceImplTest, BeforeCreateTest001, TestSize.Level0) creates.baseDir = std::string("/data/service/el1/public/database/") + appId.appId; creates.cloudConfig.enableCloud = true; kvdbServiceImpl_->executors_ = std::make_shared(1, 1); - EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::_, testing::_)) + EXPECT_CALL(*metaDataManagerMock, LoadMeta(testing::_, testing::An(), testing::_)) .WillOnce(testing::Return(false)).WillRepeatedly(testing::Return(false)); auto status = kvdbServiceImpl_->BeforeCreate(appId, storeId, creates); ASSERT_NE(status, Status::STORE_META_CHANGED); diff --git a/services/distributeddataservice/service/test/mock/access_token_mock.h b/services/distributeddataservice/service/test/mock/access_token_mock.h index dd6e20e28..a4ca352d0 100644 --- a/services/distributeddataservice/service/test/mock/access_token_mock.h +++ b/services/distributeddataservice/service/test/mock/access_token_mock.h @@ -16,6 +16,7 @@ #define OHOS_ACCESS_TOKEN_KIT_MOCK_H #include +#include #include "accesstoken_kit.h" #include "access_token.h" diff --git a/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.cpp b/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.cpp index 015bec1fe..b584d2981 100644 --- a/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.cpp +++ b/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.cpp @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include #include "device_manager_adapter_mock.h" namespace OHOS::DistributedData { @@ -41,4 +42,20 @@ bool OHOS::DistributedData::DeviceManagerAdapter::IsOHOSType(const std::string & } return BDeviceManagerAdapter::deviceManagerAdapter->IsOHOSType(id); } + +bool DeviceManagerAdapter::IsSameAccount(const AccessCaller &accCaller, const AccessCallee &accCallee) +{ + if (BDeviceManagerAdapter::deviceManagerAdapter == nullptr) { + return false; + } + return BDeviceManagerAdapter::deviceManagerAdapter->IsSameAccount(accCaller, accCallee); +} + +bool DeviceManagerAdapter::CheckAccessControl(const AccessCaller &accCaller, const AccessCallee &accCallee) +{ + if (BDeviceManagerAdapter::deviceManagerAdapter == nullptr) { + return false; + } + return BDeviceManagerAdapter::deviceManagerAdapter->CheckAccessControl(accCaller, accCallee); +} } \ No newline at end of file diff --git a/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.h b/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.h index e302e4003..40493b91b 100644 --- a/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.h +++ b/services/distributeddataservice/service/test/mock/device_manager_adapter_mock.h @@ -22,10 +22,14 @@ namespace OHOS { namespace DistributedData { using namespace OHOS::AppDistributedKv; +using AccessCaller = OHOS::AppDistributedKv::AccessCaller; +using AccessCallee = OHOS::AppDistributedKv::AccessCallee; class BDeviceManagerAdapter { public: virtual bool IsOHOSType(const std::string &) = 0; virtual std::vector ToUUID(std::vector) = 0; + virtual bool IsSameAccount(const AccessCaller &, const AccessCallee &) = 0; + virtual bool CheckAccessControl(const AccessCaller &, const AccessCallee &) = 0; static inline std::shared_ptr deviceManagerAdapter = nullptr; BDeviceManagerAdapter() = default; virtual ~BDeviceManagerAdapter() = default; @@ -35,6 +39,8 @@ class DeviceManagerAdapterMock : public BDeviceManagerAdapter { public: MOCK_METHOD(bool, IsOHOSType, (const std::string &)); MOCK_METHOD(std::vector, ToUUID, (std::vector)); + MOCK_METHOD(bool, IsSameAccount, (const AccessCaller &, const AccessCallee &)); + MOCK_METHOD(bool, CheckAccessControl, (const AccessCaller &, const AccessCallee &)); }; } // namespace DistributedData diff --git a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp index 5923f7da6..b639d8b3e 100644 --- a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp +++ b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.cpp @@ -29,6 +29,14 @@ OHOS::DistributedData::MetaDataManager::~MetaDataManager() { } bool OHOS::DistributedData::MetaDataManager::LoadMeta(const std::string &key, Serializable &value, bool isLocal) { - return BMetaDataManager::metaDataManager->LoadMeta(key, value, isLocal); + if (typeid(value) == typeid(AppIDMetaData)) { + return BMetaDataManager::metaDataManager->LoadMeta(key, static_cast(value), isLocal); + } else if (typeid(value) == typeid(StoreMetaData)) { + return BMetaDataManager::metaDataManager->LoadMeta(key, static_cast(value), isLocal); + } else if (typeid(value) == typeid(StrategyMeta)) { + return BMetaDataManager::metaDataManager->LoadMeta(key, static_cast(value), isLocal); + } else { + return BMetaDataManager::metaDataManager->LoadMeta(key, value, isLocal); + } } } \ No newline at end of file diff --git a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h index 28b4562a6..352a8a1d9 100644 --- a/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h +++ b/services/distributeddataservice/service/test/mock/meta_data_manager_mock.h @@ -16,6 +16,7 @@ #define OHOS_META_DATA_MANAGER_MOCK_H #include +#include #include "metadata/meta_data_manager.h" #include "metadata/strategy_meta_data.h" #include "metadata/store_meta_data.h" @@ -25,6 +26,9 @@ namespace OHOS::DistributedData { class BMetaDataManager { public: virtual bool LoadMeta(const std::string &, Serializable &, bool) = 0; + virtual bool LoadMeta(const std::string &, AppIDMetaData &, bool) = 0; + virtual bool LoadMeta(const std::string &, StoreMetaData &, bool) = 0; + virtual bool LoadMeta(const std::string &, StrategyMeta &, bool) = 0; BMetaDataManager() = default; virtual ~BMetaDataManager() = default; private: @@ -34,6 +38,9 @@ private: class MetaDataManagerMock : public BMetaDataManager { public: MOCK_METHOD(bool, LoadMeta, (const std::string &, Serializable &, bool)); + MOCK_METHOD(bool, LoadMeta, (const std::string &, AppIDMetaData &, bool)); + MOCK_METHOD(bool, LoadMeta, (const std::string &, StoreMetaData &, bool)); + MOCK_METHOD(bool, LoadMeta, (const std::string &, StrategyMeta &, bool)); }; } #endif //OHOS_META_DATA_MANAGER_MOCK_H diff --git a/services/distributeddataservice/service/test/permit_delegate_mock_test.cpp b/services/distributeddataservice/service/test/permit_delegate_mock_test.cpp index 791708732..3e5553af5 100644 --- a/services/distributeddataservice/service/test/permit_delegate_mock_test.cpp +++ b/services/distributeddataservice/service/test/permit_delegate_mock_test.cpp @@ -15,16 +15,19 @@ #include #include +#include #include "access_token_mock.h" #include "meta_data_manager_mock.h" #include "permit_delegate.h" #include "metadata/store_meta_data.h" #include "metadata/appid_meta_data.h" -namespace OHOS::DistributedData { +namespace OHOS::Test { +using namespace OHOS::DistributedData; using namespace OHOS::Security::AccessToken; using namespace std; using namespace testing; +using namespace testing::ext; using ActiveParam = DistributedDB::ActivationCheckParam; using CheckParam = DistributedDB::PermissionCheckParam; class PermitDelegateMockTest : public testing::Test { @@ -67,7 +70,7 @@ void PermitDelegateMockTest::TearDown(void) * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, SyncActivate001, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, SyncActivate001, TestSize.Level0) { ActiveParam activeParam = { .userId = "activeparam", @@ -81,7 +84,6 @@ HWTEST_F(PermitDelegateMockTest, SyncActivate001, testing::ext::TestSize.Level0) EXPECT_FALSE(result); } - /** * @tc.name: SyncActivate002 * @tc.desc: sync Activate. @@ -89,7 +91,7 @@ HWTEST_F(PermitDelegateMockTest, SyncActivate001, testing::ext::TestSize.Level0) * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, SyncActivate002, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, SyncActivate002, TestSize.Level0) { ActiveParam activeParam = { .userId = "1", @@ -110,7 +112,7 @@ HWTEST_F(PermitDelegateMockTest, SyncActivate002, testing::ext::TestSize.Level0) * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, VerifyPermission_001, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, VerifyPermission_001, TestSize.Level0) { std::string permission = ""; uint32_t tokenId = 1; @@ -125,7 +127,7 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission_001, testing::ext::TestSize.Le * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, VerifyPermission_002, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, VerifyPermission_002, TestSize.Level0) { std::string permission = "premmit002"; uint32_t tokenId = 1; @@ -142,7 +144,7 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission_002, testing::ext::TestSize.Le * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, VerifyPermission_003, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, VerifyPermission_003, TestSize.Level0) { std::string permission = "premmit003"; uint32_t tokenId = 0; @@ -159,12 +161,13 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission_003, testing::ext::TestSize.Le * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, VerifyPermission001, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, VerifyPermission001, TestSize.Level0) { bool result = PermitDelegate::GetInstance().appId2BundleNameMap_.Insert("Permission001", ""); ASSERT_TRUE(result); AppIDMetaData appMeta("permitdelegatemocktestId", "com.permitdelegatetest.app"); - EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, _, _)).WillOnce(DoAll(SetArgReferee<1>(appMeta), Return(true))); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)) + .WillOnce(DoAll(SetArgReferee<1>(appMeta), Return(true))); CheckParam checkParam = { .appId = "permitdelegatemocktestId", .userId = "userid", @@ -173,7 +176,7 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission001, testing::ext::TestSize.Lev .instanceId = 1 }; uint8_t flag = 1; - EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, _, false)).WillOnce(Return(false)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(false)); result = PermitDelegate::GetInstance().VerifyPermission(checkParam, flag); EXPECT_FALSE(result); } @@ -185,11 +188,11 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission001, testing::ext::TestSize.Lev * @tc.require: * @tc.author: caozhijun */ -HWTEST_F(PermitDelegateMockTest, VerifyPermission002, testing::ext::TestSize.Level0) +HWTEST_F(PermitDelegateMockTest, VerifyPermission002, TestSize.Level0) { std::string key = "Permission002"; std::string value = "com.permitDelegateUnitTest.app"; - PermitDelegate::GetInstance().appId2BundleNameMap_.Insert(key, value); + PermitDelegate::GetInstance().appId2BundleNameMap_.InsertOrAssign(key, value); auto ret = PermitDelegate::GetInstance().appId2BundleNameMap_.Find(key); ASSERT_TRUE(ret.second == value); CheckParam checkParam = { @@ -200,10 +203,134 @@ HWTEST_F(PermitDelegateMockTest, VerifyPermission002, testing::ext::TestSize.Lev .instanceId = 0 }; uint8_t flag = 1; - EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, _, _)).WillRepeatedly(Return(true)); - EXPECT_CALL(*accessTokenKitMock, VerifyAccessToken(_, _)) - .WillOnce(Return(PermissionState::PERMISSION_GRANTED)); + StrategyMeta local("localdeviceid", "localuserid", "localbundlename", "localstoreid"); + local.capabilityRange.localLabel = {}; + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)) + .WillOnce(DoAll(SetArgReferee<1>(local), Return(true))).WillOnce(Return(true)); + EXPECT_CALL(*accessTokenKitMock, VerifyAccessToken(_, _)).WillOnce(Return(PermissionState::PERMISSION_GRANTED)); bool result = PermitDelegate::GetInstance().VerifyPermission(checkParam, flag); EXPECT_TRUE(result); } + +/** + * @tc.name: VerifyPermission003 + * @tc.desc: verify permission. + * @tc.type: OVERRIDE FUNC + * @tc.require: + * @tc.author: caozhijun + */ +HWTEST_F(PermitDelegateMockTest, VerifyPermission003, TestSize.Level0) +{ + std::string key = "Permission002"; + std::string value = "com.permitDelegateUnitTest.app"; + PermitDelegate::GetInstance().appId2BundleNameMap_.InsertOrAssign(key, value); + auto ret = PermitDelegate::GetInstance().appId2BundleNameMap_.Find(key); + ASSERT_TRUE(ret.second == value); + CheckParam checkParam = { + .appId = "permitdelegatemocktestId2", + .userId = "userid2", + .storeId = "storeid2", + .deviceId = "deviceid2", + .instanceId = 0 + }; + uint8_t flag = 1; + StrategyMeta local("localdeviceid", "localuserid", "localbundlename", "localstoreid"); + local.capabilityRange.localLabel.push_back("localLabel"); + local.capabilityRange.remoteLabel.push_back("remoteLabel"); + StrategyMeta remote("remotedeviceid", "remoteuserid", "remotebundlename", "remotestoreid"); + remote.capabilityRange.localLabel = {}; + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)) + .WillOnce(DoAll(SetArgReferee<1>(local), Return(true))) + .WillOnce(DoAll(SetArgReferee<1>(remote), Return(true))); + EXPECT_CALL(*accessTokenKitMock, VerifyAccessToken(_, _)).WillOnce(Return(PermissionState::PERMISSION_GRANTED)); + auto result = PermitDelegate::GetInstance().VerifyPermission(checkParam, flag); + EXPECT_TRUE(result); +} + +/** + * @tc.name: VerifyPermission004 + * @tc.desc: verify permission. + * @tc.type: OVERRIDE FUNC + * @tc.require: + * @tc.author: caozhijun + */ +HWTEST_F(PermitDelegateMockTest, VerifyPermission004, TestSize.Level0) +{ + std::string key = "Permission002"; + std::string value = "com.permitDelegateUnitTest.app"; + PermitDelegate::GetInstance().appId2BundleNameMap_.InsertOrAssign(key, value); + auto ret = PermitDelegate::GetInstance().appId2BundleNameMap_.Find(key); + ASSERT_TRUE(ret.second == value); + CheckParam checkParam = { + .appId = "permitdelegatemocktestId2", + .userId = "userid2", + .storeId = "storeid2", + .deviceId = "deviceid2", + .instanceId = 0 + }; + uint8_t flag = 1; + StrategyMeta local("localdeviceid", "localuserid", "localbundlename", "localstoreid"); + local.capabilityRange.localLabel.push_back("localLabel"); + local.capabilityRange.remoteLabel.push_back("remoteLabel"); + StrategyMeta remote("remotedeviceid", "remoteuserid", "remotebundlename", "remotestoreid"); + remote.capabilityRange.localLabel.push_back("label1"); + remote.capabilityRange.remoteLabel.push_back("label1"); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)) + .WillOnce(DoAll(SetArgReferee<1>(local), Return(true))) + .WillOnce(DoAll(SetArgReferee<1>(remote), Return(true))); + auto result = PermitDelegate::GetInstance().VerifyPermission(checkParam, flag); + EXPECT_FALSE(result); +} + + /** + * @tc.name: VerifyPermission005 + * @tc.desc: verify permission. + * @tc.type: OVERRIDE FUNC + * @tc.require: + * @tc.author: caozhijun + */ +HWTEST_F(PermitDelegateMockTest, VerifyPermission005, TestSize.Level0) +{ + std::string key = "Permission002"; + std::string value = "com.permitDelegateUnitTest.app"; + PermitDelegate::GetInstance().appId2BundleNameMap_.InsertOrAssign(key, value); + auto ret = PermitDelegate::GetInstance().appId2BundleNameMap_.Find(key); + ASSERT_TRUE(ret.second == value); + CheckParam checkParam = { + .appId = "permitdelegatemocktestId2", + .userId = "userid2", + .storeId = "storeid2", + .deviceId = "deviceid2", + .instanceId = 0 + }; + uint8_t flag = 1; + StrategyMeta local("localdeviceid", "localuserid", "localbundlename", "localstoreid"); + local.capabilityRange.localLabel.push_back("localLabel"); + local.capabilityRange.remoteLabel.push_back("remoteLabel"); + StrategyMeta remote("remotedeviceid", "remoteuserid", "remotebundlename", "remotestoreid"); + remote.capabilityRange.localLabel.push_back("label1"); + remote.capabilityRange.remoteLabel.push_back("label1"); + + local.capabilityRange.remoteLabel.push_back("localremoteLabel"); + remote.capabilityRange.localLabel.push_back("localremoteLabel"); + std::cout << local.IsEffect() << std::endl; + std::cout << remote.IsEffect() << std::endl; + StrategyMeta temp = local; + std::cout << temp.IsEffect() << std::endl; + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)).WillOnce(Return(true)); + EXPECT_CALL(*metaDataMgrMock, LoadMeta(_, An(), _)) + .WillOnce(DoAll(SetArgReferee<1>(local), Return(true))) + .WillOnce(DoAll(SetArgReferee<1>(remote), Return(true))); + EXPECT_CALL(*accessTokenKitMock, VerifyAccessToken(_, _)).WillOnce(Return(PermissionState::PERMISSION_GRANTED)); + EXPECT_CALL(*accessTokenKitMock, GetTokenTypeFlag(_)).Times(1); + auto result = PermitDelegate::GetInstance().VerifyPermission(checkParam, flag); + EXPECT_TRUE(result); +} } \ No newline at end of file -- Gitee