/* * Copyright (c) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "iservice_registry.h" #include "mock_bundle_manager.h" #include "string_ex.h" #include "system_ability_definition.h" #include "system_ability_manager_proxy.h" #include "mock_system_ability_registry.h" namespace OHOS { sptr g_bundleMgrService = nullptr; sptr g_mockBundleMgrService = nullptr; bool g_disableSystemAbilityManager = false; SystemAbilityManagerClient& SystemAbilityManagerClient::GetInstance() { static auto instance = new SystemAbilityManagerClient(); return *instance; } sptr SystemAbilityManagerClient::GetSystemAbilityManager() { std::lock_guard lock(systemAbilityManagerLock_); if (g_disableSystemAbilityManager) { return nullptr; } if (systemAbilityManager_ != nullptr) { return systemAbilityManager_; } systemAbilityManager_ = new SystemAbilityManagerProxy(nullptr); return systemAbilityManager_; } sptr SystemAbilityManagerProxy::GetSystemAbility(int32_t systemAbilityId) { GTEST_LOG_(INFO) << "MOCK SystemAbility GetSystemAbility " << systemAbilityId; sptr remote = nullptr; switch (systemAbilityId) { case BUNDLE_MGR_SERVICE_SYS_ABILITY_ID: if (!g_bundleMgrService) { if (g_mockBundleMgrService != nullptr) { GTEST_LOG_(INFO) << "MOCK SystemAbility mockBundleMgrService"; g_bundleMgrService = g_mockBundleMgrService; } else { GTEST_LOG_(INFO) << "MOCK SystemAbility"; g_bundleMgrService = new AppExecFwk::BundleMgrService(); } } remote = g_bundleMgrService; break; default: GTEST_LOG_(INFO) << "This service is not dummy!!!!" << systemAbilityId; break; } return remote; } sptr SystemAbilityManagerProxy::GetSystemAbility(int32_t systemAbilityId, const std::string& deviceId) { return GetSystemAbility(systemAbilityId); } sptr SystemAbilityManagerProxy::CheckSystemAbilityWrapper(int32_t code, MessageParcel& data) { return nullptr; } sptr SystemAbilityManagerProxy::CheckSystemAbility(int32_t systemAbilityId) { return nullptr; } sptr SystemAbilityManagerProxy::CheckSystemAbility(int32_t systemAbilityId, const std::string& deviceId) { return nullptr; } sptr SystemAbilityManagerProxy::CheckSystemAbility(int32_t systemAbilityId, bool& isExist) { return nullptr; } int32_t SystemAbilityManagerProxy::AddOnDemandSystemAbilityInfo( int32_t systemAbilityId, const std::u16string& localAbilityManagerName) { return -1; } int32_t SystemAbilityManagerProxy::RemoveSystemAbilityWrapper(int32_t code, MessageParcel& data) { return -1; } int32_t SystemAbilityManagerProxy::RemoveSystemAbility(int32_t systemAbilityId) { return -1; } std::vector SystemAbilityManagerProxy::ListSystemAbilities(unsigned int dumpFlags) { std::vector saNames; return saNames; } int32_t SystemAbilityManagerProxy::SubscribeSystemAbility( int32_t systemAbilityId, const sptr& listener) { return -1; } int32_t SystemAbilityManagerProxy::UnSubscribeSystemAbility( int32_t systemAbilityId, const sptr& listener) { return -1; } sptr SystemAbilityManagerProxy::LoadSystemAbility(int32_t systemAbilityId, int32_t timeout) { return nullptr; } int32_t SystemAbilityManagerProxy::LoadSystemAbility( int32_t systemAbilityId, const sptr& callback) { return -1; } int32_t SystemAbilityManagerProxy::LoadSystemAbility( int32_t systemAbilityId, const std::string& deviceId, const sptr& callback) { return -1; } int32_t SystemAbilityManagerProxy::UnloadSystemAbility(int32_t systemAbilityId) { return -1; } int32_t SystemAbilityManagerProxy::CancelUnloadSystemAbility(int32_t systemAbilityId) { return -1; } int32_t SystemAbilityManagerProxy::AddSystemAbility( int32_t systemAbilityId, const sptr& ability, const SAExtraProp& extraProp) { return -1; } int32_t SystemAbilityManagerProxy::AddSystemAbilityWrapper(int32_t code, MessageParcel& data) { return -1; } int32_t SystemAbilityManagerProxy::AddSystemProcess( const std::u16string& procName, const sptr& procObject) { return -1; } int32_t SystemAbilityManagerProxy::GetSystemProcessInfo(int32_t systemAbilityId, SystemProcessInfo& systemProcessInfo) { return -1; } int32_t SystemAbilityManagerProxy::GetRunningSystemProcess(std::list& systemProcessInfos) { return -1; } int32_t SystemAbilityManagerProxy::SubscribeSystemProcess(const sptr& listener) { return -1; } int32_t SystemAbilityManagerProxy::UnSubscribeSystemProcess(const sptr& listener) { return -1; } int32_t SystemAbilityManagerProxy::GetOnDemandReasonExtraData(int64_t extraDataId, MessageParcel& extraDataParcel) { return -1; } int32_t SystemAbilityManagerProxy::GetOnDemandPolicy( int32_t systemAbilityId, OnDemandPolicyType type, std::vector& abilityOnDemandEvents) { return -1; } int32_t SystemAbilityManagerProxy::UpdateOnDemandPolicy(int32_t systemAbilityId, OnDemandPolicyType type, const std::vector& sabilityOnDemandEvents) { return -1; } int32_t SystemAbilityManagerProxy::GetOnDemandSystemAbilityIds(std::vector& systemAbilityIds) { return -1; } int32_t SystemAbilityManagerProxy::SendStrategy( int32_t type, std::vector& systemAbilityIds, int32_t level, std::string& action) { return -1; } int32_t SystemAbilityManagerProxy::UnloadAllIdleSystemAbility() { return -1; } sptr SystemAbilityManagerProxy::Recompute(int32_t systemAbilityId, int32_t code) { return nullptr; } }