1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef MOCK_OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_CLIENT_INTERFACE1_H 17 #define MOCK_OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_CLIENT_INTERFACE1_H 18 19 #include <mutex> 20 21 #include "ability_connect_callback_interface.h" 22 #include "ability_manager_errors.h" 23 #include "ability_scheduler_interface.h" 24 #include "ability_manager_interface.h" 25 #include "want.h" 26 27 #include "iremote_object.h" 28 #include "iremote_stub.h" 29 30 #include "ability_manager_client.h" 31 32 namespace OHOS { 33 namespace AppExecFwk { 34 class IAbilityMock : public OHOS::IRemoteBroker { 35 public: 36 DECLARE_INTERFACE_DESCRIPTOR(u"ohos.aafwk.AbilityMock"); 37 }; 38 39 class MockAbilityStub : public IRemoteStub<IAbilityMock> { 40 public: 41 MockAbilityStub() = default; 42 ~MockAbilityStub() = default; OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)43 int OnRemoteRequest( 44 uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option) override 45 { 46 return IPCObjectStub::OnRemoteRequest(code, data, reply, option); 47 }; 48 }; 49 50 class MockAbilityContextDeal : public ContextDeal { 51 public: 52 MockAbilityContextDeal(); 53 ~MockAbilityContextDeal(); 54 55 std::shared_ptr<HapModuleInfo> GetHapModuleInfo(); 56 57 std::shared_ptr<HapModuleInfo> hapModInfo_; 58 }; 59 60 class MockAbilityContextTest : public AbilityContext { 61 public: 62 MockAbilityContextTest(); 63 ~MockAbilityContextTest(); 64 65 void StartAbility(const AAFwk::Want& want, int requestCode); 66 67 void SetToken(const sptr<IRemoteObject> token); 68 69 size_t GetStartAbilityRunCount(); 70 void SetStartAbilityRunCount(size_t nCount); 71 72 size_t startAbilityRunCount_; 73 }; 74 } // namespace AppExecFwk 75 } // namespace OHOS 76 77 namespace OHOS { 78 namespace AAFwk { 79 class MockAbilityManagerClient : public AbilityManagerClient { 80 public: 81 MockAbilityManagerClient(); 82 ~MockAbilityManagerClient(); 83 84 ErrCode GetStartAbility(); 85 ErrCode GetTerminateAbility(); 86 ErrCode GetTerminateAbilityResult(); 87 88 void SetStartAbility(ErrCode tValue); 89 void SetTerminateAbility(ErrCode tValue); 90 void SetTerminateAbilityResult(ErrCode tValue); 91 92 int GetTerminateAbilityValue(); 93 void SetTerminateAbilityValue(int nValue); 94 95 int GetMockMissionId(); 96 void SetMockMissionId(int missionId); 97 98 static std::shared_ptr<MockAbilityManagerClient> mock_instance_; 99 static bool mock_intanceIsNull_; 100 101 static std::shared_ptr<MockAbilityManagerClient> GetInstance(); 102 static void SetInstanceNull(bool flag); 103 104 private: 105 ErrCode startAbility_; 106 ErrCode terminateAbility_; 107 ErrCode terminateAbilityResult_; 108 109 int terminateAbilityValue_; 110 int missionId_; 111 }; 112 } // namespace AAFwk 113 } // namespace OHOS 114 #endif // MOCK_OHOS_ABILITY_RUNTIME_MOCK_ABILITY_MANAGER_CLIENT_INTERFACE1_H 115