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 #include "config_factory.h" 16 #include "gtest/gtest.h" 17 using namespace testing::ext; 18 using namespace OHOS::DistributedData; 19 class ConfigFactoryTest : public testing::Test { 20 public: SetUpTestCase(void)21 static void SetUpTestCase(void) 22 { 23 } TearDownTestCase(void)24 static void TearDownTestCase(void) 25 { 26 } SetUp()27 void SetUp() 28 { 29 } TearDown()30 void TearDown() 31 { 32 } 33 }; 34 35 /** 36 * @tc.name: GlobalConfig 37 * @tc.desc: load the config.json global info. 38 * @tc.type: FUNC 39 * @tc.require: 40 * @tc.author: Sven Wang 41 */ 42 HWTEST_F(ConfigFactoryTest, GlobalConfig, TestSize.Level0) 43 { 44 auto *global = ConfigFactory::GetInstance().GetGlobalConfig(); 45 ASSERT_NE(global, nullptr); 46 ASSERT_EQ(global->processLabel, "distributeddata"); 47 ASSERT_EQ(global->metaData, "service_meta"); 48 ASSERT_EQ(global->version, "000.000.001"); 49 std::vector<std::string> features{ "kvdb", "rdb", "object", "backup", "data_sync" }; 50 ASSERT_EQ(global->features, features); 51 } 52 53 /** 54 * @tc.name: ComponentConfig 55 * @tc.desc: load the config.json component info. 56 * @tc.type: FUNC 57 * @tc.require: 58 * @tc.author: Sven Wang 59 */ 60 HWTEST_F(ConfigFactoryTest, ComponentConfig, TestSize.Level0) 61 { 62 auto *components = ConfigFactory::GetInstance().GetComponentConfig(); 63 ASSERT_NE(components, nullptr); 64 ASSERT_EQ(components->size(), 2); 65 const ComponentConfig &config = (*components)[0]; 66 ASSERT_EQ(config.description, "3rd party adapter"); 67 ASSERT_EQ(config.lib, "libconfigdemo.z.so"); 68 ASSERT_EQ(config.constructor, ""); 69 ASSERT_EQ(config.destructor, ""); 70 ASSERT_EQ(config.params, "{\"count\":1,\"key\":\"value\"}"); 71 const ComponentConfig &cfg = (*components)[1]; 72 ASSERT_EQ(cfg.lib, "libconfigdemo2.z.so"); 73 } 74 75 /** 76 * @tc.name: CheckerConfig 77 * @tc.desc: load the config.json checkers info. 78 * @tc.type: FUNC 79 * @tc.require: 80 * @tc.author: Sven Wang 81 */ 82 HWTEST_F(ConfigFactoryTest, CheckerConfig, TestSize.Level0) 83 { 84 auto *checker = ConfigFactory::GetInstance().GetCheckerConfig(); 85 ASSERT_NE(checker, nullptr); 86 std::vector<std::string> checkers{"SystemChecker", "BundleChecker", "PackageChecker", 87 "ExternalChecker"}; 88 ASSERT_EQ(checker->checkers, checkers); 89 ASSERT_EQ(checker->trusts[0].bundleName, "bundle_manager_service"); 90 ASSERT_EQ(checker->trusts[0].appId, "bundle_manager_service"); 91 ASSERT_EQ(checker->trusts[0].checker, "SystemChecker"); 92 } 93 94 /** 95 * @tc.name: NetworkConfig 96 * @tc.desc: load the config.json networks info. 97 * @tc.type: FUNC 98 * @tc.require: 99 * @tc.author: Sven Wang 100 */ 101 HWTEST_F(ConfigFactoryTest, NetworkConfig, TestSize.Level0) 102 { 103 auto *networks = ConfigFactory::GetInstance().GetNetworkConfig(); 104 ASSERT_NE(networks, nullptr); 105 std::vector<std::string> chains{ "loadBalance", "authentication", "traffic-control", "router", "transport", 106 "fault-inject" }; 107 ASSERT_EQ(networks->chains, chains); 108 std::vector<std::string> routers{ "OHOSRouter" }; 109 ASSERT_EQ(networks->routers, routers); 110 std::vector<std::string> transports{ "softbus" }; 111 ASSERT_EQ(networks->transports, transports); 112 ASSERT_EQ(networks->protocols[0].name, "OHOS softbus"); 113 ASSERT_EQ(networks->protocols[0].address, "ohos.distributeddata"); 114 ASSERT_EQ(networks->protocols[0].transport, "softbus"); 115 } 116