1 /*
2 * Copyright (c) 2022 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 #include <gtest/gtest.h>
17 #include <string>
18 #include <vector>
19 #include "cmd_utils.h"
20 #include "func_code.h"
21 #include "managed_event.h"
22 #include "policy_info.h"
23 #define private public
24 #include "enterprise_conn_manager.h"
25 #undef private
26
27 using namespace testing::ext;
28 using namespace testing;
29
30 namespace OHOS {
31 namespace EDM {
32 namespace TEST {
33 constexpr int32_t DEFAULT_USERID = 100;
34 class EnterpriseConnManagerTest : public testing::Test {
35 protected:
36 void SetUp() override;
37
38 void TearDown() override;
39
40 std::shared_ptr<EnterpriseConnManager> enterpriseConnManagerTest {nullptr};
41 };
42
SetUp()43 void EnterpriseConnManagerTest::SetUp()
44 {
45 enterpriseConnManagerTest = std::make_shared<EnterpriseConnManager>();
46 }
47
TearDown()48 void EnterpriseConnManagerTest::TearDown()
49 {
50 if (enterpriseConnManagerTest) {
51 enterpriseConnManagerTest.reset();
52 }
53 }
54
55 /**
56 * @tc.name: TestAdminConnectAbility
57 * @tc.desc: Test EnterpriseConnManager::CreateAdminConnection func.
58 * @tc.type: FUNC
59 */
60 HWTEST_F(EnterpriseConnManagerTest, TestAdminConnectAbility, TestSize.Level1)
61 {
62 std::string bundleName{"com.edm.test.demo"};
63 std::string abilityName{"com.edm.test.demo.Ability"};
64 AAFwk::Want connectWant;
65 connectWant.SetElementName(bundleName, abilityName);
66 std::shared_ptr<EnterpriseConnManager> manager = DelayedSingleton<EnterpriseConnManager>::GetInstance();
67 sptr<IEnterpriseConnection> connection = manager->CreateAdminConnection(connectWant,
68 IEnterpriseAdmin::COMMAND_ON_ADMIN_ENABLED, DEFAULT_USERID);
69 bool ret = manager->ConnectAbility(connection);
70 EXPECT_TRUE(!ret);
71
72 enterpriseConnManagerTest->Clear();
73 EXPECT_TRUE(enterpriseConnManagerTest->abilityMgr_ == nullptr);
74 }
75
76 /**
77 * @tc.name: TestBundleConnectAbility
78 * @tc.desc: Test EnterpriseConnManager::CreateBundleConnection func.
79 * @tc.type: FUNC
80 */
81 HWTEST_F(EnterpriseConnManagerTest, TestBundleConnectAbility, TestSize.Level1)
82 {
83 std::string bundleName{"com.edm.test.demo"};
84 std::string abilityName{"com.edm.test.demo.Ability"};
85 AAFwk::Want connectWant;
86 connectWant.SetElementName(bundleName, abilityName);
87 std::shared_ptr<EnterpriseConnManager> manager = DelayedSingleton<EnterpriseConnManager>::GetInstance();
88 sptr<IEnterpriseConnection> connection = manager->CreateBundleConnection(connectWant,
89 static_cast<uint32_t>(ManagedEvent::BUNDLE_ADDED), DEFAULT_USERID, "com.edm.test.bundle");
90 bool ret = manager->ConnectAbility(connection);
91 EXPECT_TRUE(!ret);
92
93 ret = manager->ConnectAbility(nullptr);
94 EXPECT_TRUE(!ret);
95
96 enterpriseConnManagerTest->Clear();
97 EXPECT_TRUE(enterpriseConnManagerTest->abilityMgr_ == nullptr);
98 }
99 } // namespace TEST
100 } // namespace EDM
101 } // namespace OHOS