1 /* 2 * Copyright (c) 2024 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 "gtest/gtest.h" 16 #include "gtest/hwext/gtest-multithread.h" 17 #include "allow_record.h" 18 19 using namespace testing::ext; 20 using namespace testing::mt; 21 22 namespace OHOS { 23 namespace DevStandbyMgr { 24 namespace { 25 constexpr int32_t DEFAULT_UID = 0; 26 constexpr int32_t DEFAULT_PID = 0; 27 const std::string DEFAULT_BUNDLE_NAME = "test"; 28 const uint32_t DEFAULT_ALLOW_TYPE = 1; 29 const uint32_t DEFAULT_REASON_CODE = 1; 30 const uint32_t DEFAULT_ALLOW_TYPE_INDEX = 1; 31 const int64_t DEFAULT_END_TIME = 1; 32 const std::string DEFAULT_REASON = "test"; 33 } 34 class AllowRecordUnitTest : public testing::Test { 35 public: SetUpTestCase()36 static void SetUpTestCase() {} TearDownTestCase()37 static void TearDownTestCase() {} SetUp()38 void SetUp() override {} TearDown()39 void TearDown() override {} 40 }; 41 42 /** 43 * @tc.name: AllowRecordUnitTest_001 44 * @tc.desc: test AllowRecord ParseFromJson 45 * @tc.type: FUNC 46 * @tc.require: 47 */ 48 HWTEST_F(AllowRecordUnitTest, AllowRecordUnitTest_001, TestSize.Level1) 49 { 50 std::shared_ptr<AllowRecord> allowRecord = std::make_shared<AllowRecord>(); 51 nlohmann::json payload; 52 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 53 payload["uid"] = DEFAULT_UID; 54 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 55 payload["pid"] = DEFAULT_PID; 56 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 57 payload["name"] = DEFAULT_BUNDLE_NAME; 58 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 59 payload["allowType"] = DEFAULT_ALLOW_TYPE; 60 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 61 payload["reasonCode"] = DEFAULT_REASON_CODE; 62 EXPECT_EQ(allowRecord->ParseFromJson(payload), true); 63 payload["allowTimeList"] = DEFAULT_UID; 64 EXPECT_EQ(allowRecord->ParseFromJson(payload), true); 65 nlohmann::json persistTime; 66 std::vector<nlohmann::json> vector{persistTime}; 67 payload["allowTimeList"] = vector; 68 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 69 persistTime["allowTypeIndex"] = DEFAULT_ALLOW_TYPE_INDEX; 70 std::vector<nlohmann::json> vector1{persistTime}; 71 payload["allowTimeList"] = vector1; 72 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 73 persistTime["endTime"] = DEFAULT_END_TIME; 74 std::vector<nlohmann::json> vector2{persistTime}; 75 payload["allowTimeList"] = vector2; 76 EXPECT_EQ(allowRecord->ParseFromJson(payload), false); 77 persistTime["reason"] = DEFAULT_REASON; 78 std::vector<nlohmann::json> vector3{persistTime}; 79 payload["allowTimeList"] = vector3; 80 EXPECT_EQ(allowRecord->ParseFromJson(payload), true); 81 } 82 } // namespace DevStandbyMgr 83 } // namespace OHOS 84