1 /*
2 * Copyright (c) 2024-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
16 #include <memory>
17 #include <gtest/gtest.h>
18 #include "sign_info.h"
19 #include "byte_buffer.h"
20
21 namespace OHOS {
22 namespace SignatureTools {
23
24 /*
25 * 测试套件,固定写法
26 */
27 class SignInfoTest : public testing::Test {
28 public:
SetUpTestCase(void)29 static void SetUpTestCase(void) {};
TearDownTestCase()30 static void TearDownTestCase() {};
SetUp()31 void SetUp() {};
TearDown()32 void TearDown() {};
33 };
34
35 /**
36 * @tc.name: fromByteArray
37 * @tc.desc: Test function of SignInfoTest::FromByteArray() interface for SUCCESS.
38 * @tc.size: MEDIUM
39 * @tc.type: FUNC
40 * @tc.level Level 1
41 * @tc.require: SR000H63TL
42 */
HWTEST_F(SignInfoTest, fromByteArray, testing::ext::TestSize.Level1)43 HWTEST_F(SignInfoTest, fromByteArray, testing::ext::TestSize.Level1)
44 {
45 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
46
47 std::vector<int8_t> bytes = { 11, -93, 88, 107, -121, 96, 121, 23, -64, -58, -95,
48 -71, -126, 60, 116, 60, 10, 15, -125, 107, 127, -123, 81, 68, 28, -121, -20,
49 -42, -116, -81, -6, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
51 SignInfo signInfo = api->FromByteArray(bytes);
52
53 EXPECT_NE(signInfo.GetSize(), 0);
54 }
55
56 /**
57 * @tc.name: getDataSize
58 * @tc.desc: Test function of SignInfoTest::GetDataSize() interface for SUCCESS.
59 * @tc.size: MEDIUM
60 * @tc.type: FUNC
61 * @tc.level Level 1
62 * @tc.require: SR000H63TL
63 */
HWTEST_F(SignInfoTest, getDataSize, testing::ext::TestSize.Level1)64 HWTEST_F(SignInfoTest, getDataSize, testing::ext::TestSize.Level1)
65 {
66 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
67
68 int64_t dataSize = api->GetDataSize();
69
70 EXPECT_EQ(dataSize, 0);
71 }
72
73 /**
74 * @tc.name: getExtensionByType
75 * @tc.desc: Test function of SignInfoTest::getExtensionByType() interface for nullptr.
76 * @tc.size: MEDIUM
77 * @tc.type: FUNC
78 * @tc.level Level 1
79 * @tc.require: SR000H63TL
80 */
HWTEST_F(SignInfoTest, getExtensionByType, testing::ext::TestSize.Level1)81 HWTEST_F(SignInfoTest, getExtensionByType, testing::ext::TestSize.Level1)
82 {
83 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
84
85 int32_t type = 1;
86 Extension* pExtension = api->GetExtensionByType(type);
87
88 EXPECT_EQ(pExtension, nullptr);
89 }
90
91 /**
92 * @tc.name: getExtensionNum
93 * @tc.desc: Test function of SignInfoTest::GetExtensionNum() interface for SUCCESS.
94 * @tc.size: MEDIUM
95 * @tc.type: FUNC
96 * @tc.level Level 1
97 * @tc.require: SR000H63TL
98 */
HWTEST_F(SignInfoTest, getExtensionNum, testing::ext::TestSize.Level1)99 HWTEST_F(SignInfoTest, getExtensionNum, testing::ext::TestSize.Level1)
100 {
101 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
102
103 int32_t extensionNum = api->GetExtensionNum();
104
105 EXPECT_EQ(extensionNum, 0);
106 }
107
108 /**
109 * @tc.name: getSignature
110 * @tc.desc: Test function of SignInfoTest::getSignature() interface for SUCCESS.
111 * @tc.size: MEDIUM
112 * @tc.type: FUNC
113 * @tc.level Level 1
114 * @tc.require: SR000H63TL
115 */
HWTEST_F(SignInfoTest, getSignature, testing::ext::TestSize.Level1)116 HWTEST_F(SignInfoTest, getSignature, testing::ext::TestSize.Level1)
117 {
118 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
119
120 std::vector<int8_t> signatureVec = api->GetSignature();
121
122 EXPECT_EQ(signatureVec.size(), 0);
123 }
124
125 /**
126 * @tc.name: getSize
127 * @tc.desc: Test function of SignInfoTest::GetSize() interface for SUCCESS.
128 * @tc.size: MEDIUM
129 * @tc.type: FUNC
130 * @tc.level Level 1
131 * @tc.require: SR000H63TL
132 */
HWTEST_F(SignInfoTest, getSize, testing::ext::TestSize.Level1)133 HWTEST_F(SignInfoTest, getSize, testing::ext::TestSize.Level1)
134 {
135 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
136
137 int32_t sizeInt = api->GetSize();
138
139 EXPECT_EQ(sizeInt, 60);
140 }
141
142 /**
143 * @tc.name: parseMerkleTreeExtension
144 * @tc.desc: The data has the wrong extensionType in the SignInfo
145 * @tc.size: MEDIUM
146 * @tc.type: FUNC
147 * @tc.level Level 1
148 * @tc.require: SR000H63TL
149 */
HWTEST_F(SignInfoTest, parseMerkleTreeExtension, testing::ext::TestSize.Level1)150 HWTEST_F(SignInfoTest, parseMerkleTreeExtension, testing::ext::TestSize.Level1)
151 {
152 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
153
154 std::vector<int8_t> bytes = std::vector<int8_t>{ 1, 0, 0, 0, 80, 0, 0, 0, 0, 16, 0, 0,
155 0, 0, 0, 0, 0, 96, 21, 0, 0, 0, 0, 0, 75, 43, 18, -27, 86, 118, 101, 64, -128, -112,
156 84, 68, 4, -107, 110, 92, 33, -118, 113, -65, -79, -103, 40, 59, 82, -90, -87, -115,
157 27, 77, 3, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0, 0 };
159 ByteBuffer bf((int32_t)bytes.size());
160 bf.PutData((char*)bytes.data(), bytes.size());
161
162 std::vector<MerkleTreeExtension*> extensionVec = api->ParseMerkleTreeExtension(&bf, 1);
163
164 EXPECT_EQ(extensionVec.size(), 0);
165 }
166
167 /**
168 * @tc.name: toByteArray
169 * @tc.desc: Test function of SignInfoTest::ToByteArray() interface for SUCCESS.
170 * @tc.size: MEDIUM
171 * @tc.type: FUNC
172 * @tc.level Level 1
173 * @tc.require: SR000H63TL
174 */
HWTEST_F(SignInfoTest, toByteArray, testing::ext::TestSize.Level1)175 HWTEST_F(SignInfoTest, toByteArray, testing::ext::TestSize.Level1)
176 {
177 std::shared_ptr<SignInfo> api = std::make_shared<SignInfo>();
178
179 std::vector<int8_t> bytes;
180 api->ToByteArray(bytes);
181
182 EXPECT_EQ(bytes.size(), 60);
183 }
184 } // namespace SignatureTools
185 } // namespace OHOS