1eace7efcSopenharmony_ci/*
2eace7efcSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3eace7efcSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4eace7efcSopenharmony_ci * you may not use this file except in compliance with the License.
5eace7efcSopenharmony_ci * You may obtain a copy of the License at
6eace7efcSopenharmony_ci *
7eace7efcSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8eace7efcSopenharmony_ci *
9eace7efcSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10eace7efcSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11eace7efcSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12eace7efcSopenharmony_ci * See the License for the specific language governing permissions and
13eace7efcSopenharmony_ci * limitations under the License.
14eace7efcSopenharmony_ci */
15eace7efcSopenharmony_ci
16eace7efcSopenharmony_ci#ifndef MODULETEST_OHOS_ABILITY_RUNTIME_SYSTEM_ABILITY_H
17eace7efcSopenharmony_ci#define MODULETEST_OHOS_ABILITY_RUNTIME_SYSTEM_ABILITY_H
18eace7efcSopenharmony_ci
19eace7efcSopenharmony_ci#include "hilog/log.h"
20eace7efcSopenharmony_ci#include "hilog_tag_wrapper.h"
21eace7efcSopenharmony_ci#include "iremote_object.h"
22eace7efcSopenharmony_cinamespace OHOS {
23eace7efcSopenharmony_ci#define REGISTER_SYSTEM_ABILITY_BY_ID(a, b, c)
24eace7efcSopenharmony_ci#define REGISTER_SYSTEM_ABILITY(abilityClassName, abilityId, runOnCreate)
25eace7efcSopenharmony_ci#define DECLEAR_SYSTEM_ABILITY(className)
26eace7efcSopenharmony_ci
27eace7efcSopenharmony_cistatic constexpr HiviewDFX::HiLogLabel LABEL = { LOG_CORE, 0xD001100, "MockSystemAbility" };
28eace7efcSopenharmony_ci
29eace7efcSopenharmony_ciclass SystemAbility {
30eace7efcSopenharmony_cipublic:
31eace7efcSopenharmony_ci    static bool MakeAndRegisterAbility(SystemAbility*)
32eace7efcSopenharmony_ci    {
33eace7efcSopenharmony_ci        return true;
34eace7efcSopenharmony_ci    }
35eace7efcSopenharmony_ci
36eace7efcSopenharmony_ci    bool AddSystemAbilityListener(int32_t systemAbilityId);
37eace7efcSopenharmony_ci
38eace7efcSopenharmony_ciprotected:
39eace7efcSopenharmony_ci    virtual void OnStart()
40eace7efcSopenharmony_ci    {
41eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility OnStart called");
42eace7efcSopenharmony_ci    }
43eace7efcSopenharmony_ci
44eace7efcSopenharmony_ci    virtual void OnStop()
45eace7efcSopenharmony_ci    {
46eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility OnStop called");
47eace7efcSopenharmony_ci    }
48eace7efcSopenharmony_ci
49eace7efcSopenharmony_ci    virtual void OnAddSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
50eace7efcSopenharmony_ci    {
51eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility OnAddSystemAbility called");
52eace7efcSopenharmony_ci    }
53eace7efcSopenharmony_ci
54eace7efcSopenharmony_ci    virtual void OnRemoveSystemAbility(int32_t systemAbilityId, const std::string& deviceId)
55eace7efcSopenharmony_ci    {
56eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility OnRemoveSystemAbility called");
57eace7efcSopenharmony_ci    }
58eace7efcSopenharmony_ci
59eace7efcSopenharmony_ci    bool Publish(sptr<IRemoteObject> systemAbility)
60eace7efcSopenharmony_ci    {
61eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility Publish called");
62eace7efcSopenharmony_ci        systemAbility.ForceSetRefPtr(nullptr);
63eace7efcSopenharmony_ci        return true;
64eace7efcSopenharmony_ci    }
65eace7efcSopenharmony_ci
66eace7efcSopenharmony_ci    explicit SystemAbility(bool runOnCreate = false)
67eace7efcSopenharmony_ci    {
68eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility default Creator called %d", runOnCreate);
69eace7efcSopenharmony_ci    }
70eace7efcSopenharmony_ci
71eace7efcSopenharmony_ci    SystemAbility(const int32_t serviceId, bool runOnCreate = false)
72eace7efcSopenharmony_ci    {
73eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility Creator called %d", runOnCreate);
74eace7efcSopenharmony_ci    }
75eace7efcSopenharmony_ci
76eace7efcSopenharmony_ci    virtual ~SystemAbility()
77eace7efcSopenharmony_ci    {
78eace7efcSopenharmony_ci        TAG_LOGD(AAFwkTag::TEST, "Mock SystemAbility Destructor called");
79eace7efcSopenharmony_ci    }
80eace7efcSopenharmony_ci};
81eace7efcSopenharmony_ci}  // namespace OHOS
82eace7efcSopenharmony_ci#endif  // MODULETEST_OHOS_ABILITY_RUNTIME_SYSTEM_ABILITY_H
83