14e56987cSopenharmony_ci/*
24e56987cSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
34e56987cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44e56987cSopenharmony_ci * you may not use this file except in compliance with the License.
54e56987cSopenharmony_ci * You may obtain a copy of the License at
64e56987cSopenharmony_ci *
74e56987cSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84e56987cSopenharmony_ci *
94e56987cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104e56987cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114e56987cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124e56987cSopenharmony_ci * See the License for the specific language governing permissions and
134e56987cSopenharmony_ci * limitations under the License.
144e56987cSopenharmony_ci */
154e56987cSopenharmony_ci
164e56987cSopenharmony_ci#include <gtest/gtest.h>
174e56987cSopenharmony_ci
184e56987cSopenharmony_ci#include "cert_manager_api.h"
194e56987cSopenharmony_ci
204e56987cSopenharmony_ci#include "cm_test_common.h"
214e56987cSopenharmony_ci
224e56987cSopenharmony_ciusing namespace testing::ext;
234e56987cSopenharmony_ciusing namespace CertmanagerTest;
244e56987cSopenharmony_cinamespace {
254e56987cSopenharmony_cistatic constexpr uint32_t DEFAULT_INDATA_SIZE = 10;
264e56987cSopenharmony_cistatic constexpr uint32_t DEFAULT_HANDLE_SIZE = 8;
274e56987cSopenharmony_ci
284e56987cSopenharmony_ciclass CmUpdateTest : public testing::Test {
294e56987cSopenharmony_cipublic:
304e56987cSopenharmony_ci    static void SetUpTestCase(void);
314e56987cSopenharmony_ci
324e56987cSopenharmony_ci    static void TearDownTestCase(void);
334e56987cSopenharmony_ci
344e56987cSopenharmony_ci    void SetUp();
354e56987cSopenharmony_ci
364e56987cSopenharmony_ci    void TearDown();
374e56987cSopenharmony_ci};
384e56987cSopenharmony_ci
394e56987cSopenharmony_civoid CmUpdateTest::SetUpTestCase(void)
404e56987cSopenharmony_ci{
414e56987cSopenharmony_ci    SetATPermission();
424e56987cSopenharmony_ci}
434e56987cSopenharmony_ci
444e56987cSopenharmony_civoid CmUpdateTest::TearDownTestCase(void)
454e56987cSopenharmony_ci{
464e56987cSopenharmony_ci}
474e56987cSopenharmony_ci
484e56987cSopenharmony_civoid CmUpdateTest::SetUp()
494e56987cSopenharmony_ci{
504e56987cSopenharmony_ci}
514e56987cSopenharmony_ci
524e56987cSopenharmony_civoid CmUpdateTest::TearDown()
534e56987cSopenharmony_ci{
544e56987cSopenharmony_ci}
554e56987cSopenharmony_ci
564e56987cSopenharmony_cistatic const uint8_t g_inDataBuf[DEFAULT_INDATA_SIZE] = {0};
574e56987cSopenharmony_cistatic const uint8_t g_handleBuf[DEFAULT_HANDLE_SIZE] = {0};
584e56987cSopenharmony_cistatic const struct CmBlob g_inData = { DEFAULT_INDATA_SIZE, (uint8_t *)g_inDataBuf };
594e56987cSopenharmony_cistatic const struct CmBlob g_handle = { DEFAULT_HANDLE_SIZE, (uint8_t *)g_handleBuf };
604e56987cSopenharmony_ci
614e56987cSopenharmony_ci/**
624e56987cSopenharmony_ci* @tc.name: CmUpdateTest001
634e56987cSopenharmony_ci* @tc.desc: Test CmIsAuthorizedApp handle is null
644e56987cSopenharmony_ci* @tc.type: FUNC
654e56987cSopenharmony_ci* @tc.require: AR000H0MIA /SR000H09NA
664e56987cSopenharmony_ci*/
674e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest001, TestSize.Level0)
684e56987cSopenharmony_ci{
694e56987cSopenharmony_ci    struct CmBlob *handle = nullptr;
704e56987cSopenharmony_ci    int32_t ret = CmUpdate(handle, &g_inData);
714e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
724e56987cSopenharmony_ci}
734e56987cSopenharmony_ci
744e56987cSopenharmony_ci/**
754e56987cSopenharmony_ci * @tc.name: CmUpdateTest002
764e56987cSopenharmony_ci * @tc.desc: Test CmIsAuthorizedApp handle size is 0
774e56987cSopenharmony_ci * @tc.type: FUNC
784e56987cSopenharmony_ci * @tc.require: AR000H0MIA /SR000H09NA
794e56987cSopenharmony_ci */
804e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest002, TestSize.Level0)
814e56987cSopenharmony_ci{
824e56987cSopenharmony_ci    struct CmBlob handle = { 0, (uint8_t *)g_handleBuf };
834e56987cSopenharmony_ci    int32_t ret = CmUpdate(&handle, &g_inData);
844e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
854e56987cSopenharmony_ci}
864e56987cSopenharmony_ci
874e56987cSopenharmony_ci/**
884e56987cSopenharmony_ci * @tc.name: CmUpdateTest003
894e56987cSopenharmony_ci * @tc.desc: Test CmIsAuthorizedApp handle data is null
904e56987cSopenharmony_ci * @tc.type: FUNC
914e56987cSopenharmony_ci * @tc.require: AR000H0MIA /SR000H09NA
924e56987cSopenharmony_ci */
934e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest003, TestSize.Level0)
944e56987cSopenharmony_ci{
954e56987cSopenharmony_ci    struct CmBlob handle = { DEFAULT_HANDLE_SIZE, nullptr };
964e56987cSopenharmony_ci    int32_t ret = CmUpdate(&handle, &g_inData);
974e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
984e56987cSopenharmony_ci}
994e56987cSopenharmony_ci
1004e56987cSopenharmony_ci/**
1014e56987cSopenharmony_ci* @tc.name: CmUpdateTest004
1024e56987cSopenharmony_ci* @tc.desc: Test CmIsAuthorizedApp inData is null
1034e56987cSopenharmony_ci* @tc.type: FUNC
1044e56987cSopenharmony_ci* @tc.require: AR000H0MIA /SR000H09NA
1054e56987cSopenharmony_ci*/
1064e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest004, TestSize.Level0)
1074e56987cSopenharmony_ci{
1084e56987cSopenharmony_ci    struct CmBlob *inData = nullptr;
1094e56987cSopenharmony_ci    int32_t ret = CmUpdate(&g_handle, inData);
1104e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
1114e56987cSopenharmony_ci}
1124e56987cSopenharmony_ci
1134e56987cSopenharmony_ci/**
1144e56987cSopenharmony_ci * @tc.name: CmUpdateTest005
1154e56987cSopenharmony_ci * @tc.desc: Test CmIsAuthorizedApp inData size is 0
1164e56987cSopenharmony_ci * @tc.type: FUNC
1174e56987cSopenharmony_ci * @tc.require: AR000H0MIA /SR000H09NA
1184e56987cSopenharmony_ci */
1194e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest005, TestSize.Level0)
1204e56987cSopenharmony_ci{
1214e56987cSopenharmony_ci    struct CmBlob inData = { 0, (uint8_t *)g_inDataBuf };
1224e56987cSopenharmony_ci    int32_t ret = CmUpdate(&g_handle, &inData);
1234e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
1244e56987cSopenharmony_ci}
1254e56987cSopenharmony_ci
1264e56987cSopenharmony_ci/**
1274e56987cSopenharmony_ci* @tc.name: CmUpdateTest006
1284e56987cSopenharmony_ci* @tc.desc: Test CmIsAuthorizedApp inData data is null
1294e56987cSopenharmony_ci* @tc.type: FUNC
1304e56987cSopenharmony_ci* @tc.require: AR000H0MIA /SR000H09NA
1314e56987cSopenharmony_ci*/
1324e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest006, TestSize.Level0)
1334e56987cSopenharmony_ci{
1344e56987cSopenharmony_ci    struct CmBlob inData = { DEFAULT_INDATA_SIZE, nullptr };
1354e56987cSopenharmony_ci    int32_t ret = CmUpdate(&g_handle, &inData);
1364e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT);
1374e56987cSopenharmony_ci}
1384e56987cSopenharmony_ci
1394e56987cSopenharmony_ci/**
1404e56987cSopenharmony_ci* @tc.name: CmUpdateTest007
1414e56987cSopenharmony_ci* @tc.desc: Test CmIsAuthorizedApp handle not exist
1424e56987cSopenharmony_ci* @tc.type: FUNC
1434e56987cSopenharmony_ci* @tc.require: AR000H0MIA /SR000H09NA
1444e56987cSopenharmony_ci*/
1454e56987cSopenharmony_ciHWTEST_F(CmUpdateTest, CmUpdateTest007, TestSize.Level0)
1464e56987cSopenharmony_ci{
1474e56987cSopenharmony_ci    int32_t ret = CmUpdate(&g_handle, &g_inData);
1484e56987cSopenharmony_ci    EXPECT_EQ(ret, CMR_ERROR_NOT_EXIST);
1494e56987cSopenharmony_ci}
1504e56987cSopenharmony_ci} // end of namespace
151