1e5d0e473Sopenharmony_ci/*
2e5d0e473Sopenharmony_ci * Copyright (C) 2023-2024 Huawei Device Co., Ltd.
3e5d0e473Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e5d0e473Sopenharmony_ci * you may not use this file except in compliance with the License.
5e5d0e473Sopenharmony_ci * You may obtain a copy of the License at
6e5d0e473Sopenharmony_ci *
7e5d0e473Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e5d0e473Sopenharmony_ci *
9e5d0e473Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e5d0e473Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e5d0e473Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e5d0e473Sopenharmony_ci * See the License for the specific language governing permissions and
13e5d0e473Sopenharmony_ci * limitations under the License.
14e5d0e473Sopenharmony_ci */
15e5d0e473Sopenharmony_ci
16e5d0e473Sopenharmony_ci#define private public
17e5d0e473Sopenharmony_ci#define protected public
18e5d0e473Sopenharmony_ci
19e5d0e473Sopenharmony_ci#include "gsm_cb_codec.h"
20e5d0e473Sopenharmony_ci#include "gsm_cb_gsm_codec.h"
21e5d0e473Sopenharmony_ci#include "gsm_cb_umts_codec.h"
22e5d0e473Sopenharmony_ci#include "gtest/gtest.h"
23e5d0e473Sopenharmony_ci#include "radio_event.h"
24e5d0e473Sopenharmony_ci#include "sms_service.h"
25e5d0e473Sopenharmony_ci
26e5d0e473Sopenharmony_cinamespace OHOS {
27e5d0e473Sopenharmony_cinamespace Telephony {
28e5d0e473Sopenharmony_ciusing namespace testing::ext;
29e5d0e473Sopenharmony_ci
30e5d0e473Sopenharmony_cinamespace {
31e5d0e473Sopenharmony_ciconst int32_t INVALID_SLOTID = 2;
32e5d0e473Sopenharmony_ciconst uint16_t PWS_FIRST_ID = 0x1100;
33e5d0e473Sopenharmony_ciconst std::string ETWS_PDU = "000B1100011165FA7D4E9BD564";
34e5d0e473Sopenharmony_ciconst std::string CMAS_PDU = "000D11120111E376784E9BDD60";
35e5d0e473Sopenharmony_ciconst std::string CBS_PDU = "00031112011163F19C36BBC11A";
36e5d0e473Sopenharmony_ciconst std::string CMAS_JP_PDU =
37e5d0e473Sopenharmony_ci    "01A41F51101102EA3030A830EA30A230E130FC30EB914D4FE130C630B930C8000D000A3053308C306F8A669A137528306E30E130C330BB30FC"
38e5d0e473Sopenharmony_ci    "30B8306730593002000D000AFF080032003000310033002F00310031002F003252EA300037002000310035003A00340034FF09000D000AFF08"
39e5d0e473Sopenharmony_ci    "30A830EA30A25E02FF090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
40e5d0e473Sopenharmony_ci    "0022";
41e5d0e473Sopenharmony_ci} // namespace
42e5d0e473Sopenharmony_ci
43e5d0e473Sopenharmony_ciclass BranchCbTest : public testing::Test {
44e5d0e473Sopenharmony_cipublic:
45e5d0e473Sopenharmony_ci    static void SetUpTestCase();
46e5d0e473Sopenharmony_ci    static void TearDownTestCase();
47e5d0e473Sopenharmony_ci    void SetUp();
48e5d0e473Sopenharmony_ci    void TearDown();
49e5d0e473Sopenharmony_ci};
50e5d0e473Sopenharmony_civoid BranchCbTest::SetUpTestCase() {}
51e5d0e473Sopenharmony_ci
52e5d0e473Sopenharmony_civoid BranchCbTest::TearDownTestCase() {}
53e5d0e473Sopenharmony_ci
54e5d0e473Sopenharmony_civoid BranchCbTest::SetUp() {}
55e5d0e473Sopenharmony_ci
56e5d0e473Sopenharmony_civoid BranchCbTest::TearDown() {}
57e5d0e473Sopenharmony_ci
58e5d0e473Sopenharmony_ci/**
59e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0001
60e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
61e5d0e473Sopenharmony_ci * @tc.desc     Function test
62e5d0e473Sopenharmony_ci */
63e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0001, Function | MediumTest | Level1)
64e5d0e473Sopenharmony_ci{
65e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu;
66e5d0e473Sopenharmony_ci    unsigned char data = 1;
67e5d0e473Sopenharmony_ci    pdu.push_back(data);
68e5d0e473Sopenharmony_ci    auto cbCodec = std::make_shared<GsmCbCodec>();
69e5d0e473Sopenharmony_ci    cbCodec->PduAnalysis(pdu);
70e5d0e473Sopenharmony_ci    int8_t format = 1;
71e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetFormat(format));
72e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetPriority(format));
73e5d0e473Sopenharmony_ci    EXPECT_NE(cbCodec->GsmCbCodec::ToString(), "");
74e5d0e473Sopenharmony_ci    uint8_t gs = 1;
75e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetGeoScope(gs));
76e5d0e473Sopenharmony_ci    uint16_t serial = 1;
77e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetSerialNum(serial));
78e5d0e473Sopenharmony_ci    bool isUserAlert = false;
79e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->IsEtwsEmergencyUserAlert(isUserAlert));
80e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->IsEtwsPopupAlert(isUserAlert));
81e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetServiceCategory(serial));
82e5d0e473Sopenharmony_ci    uint8_t cmasType;
83e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetCmasResponseType(cmasType));
84e5d0e473Sopenharmony_ci    uint8_t cmasClass;
85e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetCmasMessageClass(cmasClass));
86e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetWarningType(serial));
87e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetMsgType(gs));
88e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetLangType(gs));
89e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetDcs(gs));
90e5d0e473Sopenharmony_ci    int64_t recvTime = 0;
91e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetReceiveTime(recvTime));
92e5d0e473Sopenharmony_ci}
93e5d0e473Sopenharmony_ci
94e5d0e473Sopenharmony_ci/**
95e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0002
96e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
97e5d0e473Sopenharmony_ci * @tc.desc     Function test
98e5d0e473Sopenharmony_ci */
99e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0002, Function | MediumTest | Level1)
100e5d0e473Sopenharmony_ci{
101e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu;
102e5d0e473Sopenharmony_ci    unsigned char data = 1;
103e5d0e473Sopenharmony_ci    pdu.push_back(data);
104e5d0e473Sopenharmony_ci    auto cbCodec = std::make_shared<GsmCbCodec>();
105e5d0e473Sopenharmony_ci    cbCodec->PduAnalysis(pdu);
106e5d0e473Sopenharmony_ci    uint8_t cmasType;
107e5d0e473Sopenharmony_ci    cbCodec->GetCmasCategory(cmasType);
108e5d0e473Sopenharmony_ci    std::string raw = "qwe";
109e5d0e473Sopenharmony_ci    std::string message = "asd";
110e5d0e473Sopenharmony_ci    cbCodec->ConvertToUTF8(raw, message);
111e5d0e473Sopenharmony_ci    cbCodec->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
112e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_7BIT;
113e5d0e473Sopenharmony_ci    cbCodec->ConvertToUTF8(raw, message);
114e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_UCS2;
115e5d0e473Sopenharmony_ci    cbCodec->ConvertToUTF8(raw, message);
116e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->dcs.codingScheme = DATA_CODING_AUTO;
117e5d0e473Sopenharmony_ci    cbCodec->ConvertToUTF8(raw, message);
118e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->bEtwsMessage = true;
119e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->cbEtwsType = GsmCbCodec::ETWS_PRIMARY;
120e5d0e473Sopenharmony_ci    cbCodec->ConvertToUTF8(raw, message);
121e5d0e473Sopenharmony_ci    cbCodec->GetCbMessageRaw();
122e5d0e473Sopenharmony_ci    int8_t format = 1;
123e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetPriority(format));
124e5d0e473Sopenharmony_ci    cbCodec->cbHeader_->msgId = PWS_FIRST_ID;
125e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetPriority(format));
126e5d0e473Sopenharmony_ci    EXPECT_FALSE(cbCodec->IsSinglePageMsg());
127e5d0e473Sopenharmony_ci    std::string pdus = "123";
128e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->CreateCbMessage(pdu) == nullptr);
129e5d0e473Sopenharmony_ci    EXPECT_FALSE(cbCodec->CreateCbMessage(pdus));
130e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbCodec->GetCbHeader() != nullptr);
131e5d0e473Sopenharmony_ci}
132e5d0e473Sopenharmony_ci
133e5d0e473Sopenharmony_ci/**
134e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0003
135e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
136e5d0e473Sopenharmony_ci * @tc.desc     Function test
137e5d0e473Sopenharmony_ci */
138e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0003, Function | MediumTest | Level1)
139e5d0e473Sopenharmony_ci{
140e5d0e473Sopenharmony_ci    auto smsCbMessage = std::make_shared<GsmCbCodec>();
141e5d0e473Sopenharmony_ci    uint8_t severity = 1;
142e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
143e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED;
144e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
145e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
146e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED_SPANISH;
147e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
148e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
149e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY;
150e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
151e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
152e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY_SPANISH;
153e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
154e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
155e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED;
156e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
157e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
158e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED_SPANISH;
159e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
160e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
161e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY;
162e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
163e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
164e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY_SPANISH;
165e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
166e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
167e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_DEFUALT;
168e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
169e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
170e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_SPANISH;
171e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
172e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
173e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY;
174e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
175e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
176e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY_SPANISH;
177e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
178e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
179e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED;
180e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
181e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
182e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED_SPANISH;
183e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
184e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
185e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY;
186e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
187e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
188e5d0e473Sopenharmony_ci}
189e5d0e473Sopenharmony_ci
190e5d0e473Sopenharmony_ci/**
191e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0004
192e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
193e5d0e473Sopenharmony_ci * @tc.desc     Function test
194e5d0e473Sopenharmony_ci */
195e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0004, Function | MediumTest | Level1)
196e5d0e473Sopenharmony_ci{
197e5d0e473Sopenharmony_ci    auto smsCbMessage = std::make_shared<GsmCbCodec>();
198e5d0e473Sopenharmony_ci    uint8_t severity = 1;
199e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
200e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY_SPANISH;
201e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
202e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
203e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
204e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::OPERATOR_ALERT_SPANISH;
205e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasSeverity(severity));
206e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasUrgency(severity));
207e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
208e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED;
209e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
210e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_OBSERVED_SPANISH;
211e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
212e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED;
213e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
214e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_OBSERVED_SPANISH;
215e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
216e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_DEFUALT;
217e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
218e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_OBSERVED_SPANISH;
219e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
220e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED;
221e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
222e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_OBSERVED_SPANISH;
223e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
224e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY;
225e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
226e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXTREME_LIKELY_SPANISH;
227e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
228e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY;
229e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
230e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::SEVERE_LIKELY_SPANISH;
231e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
232e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY;
233e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
234e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::ALERT_LIKELY_SPANISH;
235e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
236e5d0e473Sopenharmony_ci    smsCbMessage->cbHeader_->msgId = GsmCbCodec::CmasMsgType::EXPECTED_LIKELY;
237e5d0e473Sopenharmony_ci    EXPECT_TRUE(smsCbMessage->GetCmasCertainty(severity));
238e5d0e473Sopenharmony_ci}
239e5d0e473Sopenharmony_ci
240e5d0e473Sopenharmony_ci/**
241e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0005
242e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
243e5d0e473Sopenharmony_ci * @tc.desc     Function test
244e5d0e473Sopenharmony_ci */
245e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0005, Function | MediumTest | Level1)
246e5d0e473Sopenharmony_ci{
247e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
248e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
249e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
250e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
251e5d0e473Sopenharmony_ci    ASSERT_NE(gsmMsg, nullptr);
252e5d0e473Sopenharmony_ci    ASSERT_NE(umtsMsg, nullptr);
253e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmMsg->Decode2gHeader());
254e5d0e473Sopenharmony_ci    unsigned char data = 1;
255e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu;
256e5d0e473Sopenharmony_ci    pdu.push_back(data);
257e5d0e473Sopenharmony_ci    cbMsg->PduAnalysis(pdu);
258e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
259e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
260e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
261e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
262e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
263e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
264e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
265e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
266e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
267e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
268e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
269e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
270e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
271e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
272e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
273e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
274e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
275e5d0e473Sopenharmony_ci    umtsMsg->Decode3gUCS2();
276e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::PRESIDENTIAL), GsmCbCodec::GSMCbMsgSubType::CMAS_PRESIDENTIAL);
277e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::PRESIDENTIAL_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_PRESIDENTIAL);
278e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME);
279e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME);
280e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME);
281e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::EXTREME_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXTREME);
282e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
283e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
284e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
285e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::SEVERE_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
286e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::ALERT_OBSERVED_DEFUALT), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
287e5d0e473Sopenharmony_ci    EXPECT_EQ(cbMsg->CMASClass(GsmCbCodec::ALERT_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
288e5d0e473Sopenharmony_ci}
289e5d0e473Sopenharmony_ci
290e5d0e473Sopenharmony_ci/**
291e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodec_0006
292e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec
293e5d0e473Sopenharmony_ci * @tc.desc     Function test
294e5d0e473Sopenharmony_ci */
295e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodec_0006, Function | MediumTest | Level1)
296e5d0e473Sopenharmony_ci{
297e5d0e473Sopenharmony_ci    auto smsCbMessage = std::make_shared<GsmCbCodec>();
298e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::ALERT_LIKELY), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
299e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::ALERT_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
300e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_OBSERVED), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
301e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_OBSERVED_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
302e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
303e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXPECTED_LIKELY_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_SEVERE);
304e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::AMBER_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_AMBER);
305e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::AMBER_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_AMBER);
306e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::MONTHLY_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_TEST);
307e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::MONTHLY_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_TEST);
308e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXERCISE_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_EXERCISE);
309e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::EXERCISE_ALERT_SPANISH), GsmCbCodec::GSMCbMsgSubType::CMAS_EXERCISE);
310e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::OPERATOR_ALERT), GsmCbCodec::GSMCbMsgSubType::CMAS_OPERATOR_DEFINED);
311e5d0e473Sopenharmony_ci    EXPECT_EQ(smsCbMessage->CMASClass(GsmCbCodec::OPERATOR_ALERT_SPANISH),
312e5d0e473Sopenharmony_ci        GsmCbCodec::GSMCbMsgSubType::CMAS_OPERATOR_DEFINED);
313e5d0e473Sopenharmony_ci}
314e5d0e473Sopenharmony_ci
315e5d0e473Sopenharmony_ci/**
316e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbGsmCodec_0001
317e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbGsmCodec
318e5d0e473Sopenharmony_ci * @tc.desc     Function test
319e5d0e473Sopenharmony_ci */
320e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0001, Function | MediumTest | Level1)
321e5d0e473Sopenharmony_ci{
322e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
323e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
324e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(ETWS_PDU);
325e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU);
326e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
327e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
328e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) {
329e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
330e5d0e473Sopenharmony_ci    }
331e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
332e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
333e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
334e5d0e473Sopenharmony_ci    umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
335e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeader();
336e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderEtws();
337e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->Decode2gCbMsg());
338e5d0e473Sopenharmony_ci
339e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderCommonCb();
340e5d0e473Sopenharmony_ci    uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition();
341e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg7bit(dataLen);
342e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->DecodeEtwsMsg());
343e5d0e473Sopenharmony_ci
344e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeader();
345e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeaderPartData(0);
346e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
347e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
348e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
349e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
350e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
351e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
352e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
353e5d0e473Sopenharmony_ci
354e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
355e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
356e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
357e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
358e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
359e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
360e5d0e473Sopenharmony_ci
361e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
362e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
363e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
364e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
365e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
366e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
367e5d0e473Sopenharmony_ci}
368e5d0e473Sopenharmony_ci
369e5d0e473Sopenharmony_ci/**
370e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbGsmCodec_0002
371e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbGsmCodec
372e5d0e473Sopenharmony_ci * @tc.desc     Function test
373e5d0e473Sopenharmony_ci */
374e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0002, Function | MediumTest | Level1)
375e5d0e473Sopenharmony_ci{
376e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
377e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
378e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(CMAS_PDU);
379e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_PDU);
380e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
381e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
382e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) {
383e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
384e5d0e473Sopenharmony_ci    }
385e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
386e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
387e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
388e5d0e473Sopenharmony_ci    umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
389e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeader();
390e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderEtws();
391e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->Decode2gCbMsg());
392e5d0e473Sopenharmony_ci
393e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderCommonCb();
394e5d0e473Sopenharmony_ci    uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition();
395e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg7bit(dataLen);
396e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->DecodeEtwsMsg());
397e5d0e473Sopenharmony_ci
398e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeader();
399e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeaderPartData(0);
400e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
401e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
402e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
403e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
404e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
405e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
406e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
407e5d0e473Sopenharmony_ci
408e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
409e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
410e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
411e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
412e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
413e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
414e5d0e473Sopenharmony_ci
415e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
416e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
417e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
418e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
419e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
420e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
421e5d0e473Sopenharmony_ci}
422e5d0e473Sopenharmony_ci
423e5d0e473Sopenharmony_ci/**
424e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbGsmCodec_0003
425e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbGsmCodec
426e5d0e473Sopenharmony_ci * @tc.desc     Function test
427e5d0e473Sopenharmony_ci */
428e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0003, Function | MediumTest | Level1)
429e5d0e473Sopenharmony_ci{
430e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
431e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
432e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(CBS_PDU);
433e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CBS_PDU);
434e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
435e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
436e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) {
437e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
438e5d0e473Sopenharmony_ci    }
439e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
440e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
441e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
442e5d0e473Sopenharmony_ci    umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
443e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeader();
444e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderEtws();
445e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->Decode2gCbMsg());
446e5d0e473Sopenharmony_ci
447e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderCommonCb();
448e5d0e473Sopenharmony_ci    uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition();
449e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg7bit(dataLen);
450e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->DecodeEtwsMsg());
451e5d0e473Sopenharmony_ci
452e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeader();
453e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeaderPartData(0);
454e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
455e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
456e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
457e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
458e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
459e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
460e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
461e5d0e473Sopenharmony_ci
462e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
463e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
464e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
465e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
466e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
467e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
468e5d0e473Sopenharmony_ci
469e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
470e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
471e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
472e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
473e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
474e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
475e5d0e473Sopenharmony_ci}
476e5d0e473Sopenharmony_ci
477e5d0e473Sopenharmony_ci/**
478e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbGsmCodec_0004
479e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbGsmCodec
480e5d0e473Sopenharmony_ci * @tc.desc     Function test
481e5d0e473Sopenharmony_ci */
482e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0004, Function | MediumTest | Level1)
483e5d0e473Sopenharmony_ci{
484e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
485e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
486e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(CMAS_JP_PDU);
487e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_JP_PDU);
488e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
489e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
490e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++) {
491e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
492e5d0e473Sopenharmony_ci    }
493e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
494e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
495e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
496e5d0e473Sopenharmony_ci    umtsMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
497e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeader();
498e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderEtws();
499e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmMsg->Decode2gCbMsg());
500e5d0e473Sopenharmony_ci
501e5d0e473Sopenharmony_ci    gsmMsg->Decode2gHeaderCommonCb();
502e5d0e473Sopenharmony_ci    uint16_t dataLen = gsmMsg->cbPduBuffer_->GetSize() - gsmMsg->cbPduBuffer_->GetCurPosition();
503e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg7bit(dataLen);
504e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmMsg->DecodeEtwsMsg());
505e5d0e473Sopenharmony_ci
506e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeader();
507e5d0e473Sopenharmony_ci    umtsMsg->Decode3gHeaderPartData(0);
508e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
509e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
510e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gUCS2());
511e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
512e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
513e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
514e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gCbMsg());
515e5d0e473Sopenharmony_ci
516e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
517e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
518e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gCbMsg());
519e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
520e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
521e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gCbMsg());
522e5d0e473Sopenharmony_ci
523e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
524e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
525e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gCbMsg());
526e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
527e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
528e5d0e473Sopenharmony_ci    EXPECT_TRUE(umtsMsg->Decode3gUCS2());
529e5d0e473Sopenharmony_ci}
530e5d0e473Sopenharmony_ci
531e5d0e473Sopenharmony_ci/**
532e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbGsmCodec_0005
533e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbGsmCodec
534e5d0e473Sopenharmony_ci * @tc.desc     Function test
535e5d0e473Sopenharmony_ci */
536e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbGsmCodec_0005, Function | MediumTest | Level1)
537e5d0e473Sopenharmony_ci{
538e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
539e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
540e5d0e473Sopenharmony_ci    unsigned char data = 1;
541e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu;
542e5d0e473Sopenharmony_ci    pdu.push_back(data);
543e5d0e473Sopenharmony_ci    cbMsg->PduAnalysis(pdu);
544e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
545e5d0e473Sopenharmony_ci    auto umtsMsg = std::make_shared<GsmCbUmtsCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
546e5d0e473Sopenharmony_ci    ASSERT_NE(gsmMsg, nullptr);
547e5d0e473Sopenharmony_ci    ASSERT_NE(umtsMsg, nullptr);
548e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
549e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
550e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
551e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_7BIT;
552e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
553e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
554e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_8BIT;
555e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
556e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
557e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_UCS2;
558e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
559e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gCbMsg());
560e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->dcs.codingScheme = DataCodingScheme::DATA_CODING_ASCII7BIT;
561e5d0e473Sopenharmony_ci    gsmMsg->Decode2gCbMsg();
562e5d0e473Sopenharmony_ci    umtsMsg->Decode3gCbMsg();
563e5d0e473Sopenharmony_ci    cbMsg->cbHeader_->totalPages = 1;
564e5d0e473Sopenharmony_ci    umtsMsg->Decode3g7Bit();
565e5d0e473Sopenharmony_ci    EXPECT_FALSE(umtsMsg->Decode3gUCS2());
566e5d0e473Sopenharmony_ci}
567e5d0e473Sopenharmony_ci
568e5d0e473Sopenharmony_ci/**
569e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmSmsCbHandler_0001
570e5d0e473Sopenharmony_ci * @tc.name     Test GsmSmsCbHandler
571e5d0e473Sopenharmony_ci * @tc.desc     Function test
572e5d0e473Sopenharmony_ci */
573e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmSmsCbHandler_0001, Function | MediumTest | Level1)
574e5d0e473Sopenharmony_ci{
575e5d0e473Sopenharmony_ci    auto gsmSmsCbHandler = std::make_shared<GsmSmsCbHandler>(INVALID_SLOTID);
576e5d0e473Sopenharmony_ci    auto cbMessage = std::make_shared<GsmCbCodec>();
577e5d0e473Sopenharmony_ci    auto message = std::make_shared<CBConfigReportInfo>();
578e5d0e473Sopenharmony_ci    AppExecFwk::InnerEvent::Pointer event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CELL_BROADCAST, 1);
579e5d0e473Sopenharmony_ci    gsmSmsCbHandler->ProcessEvent(event);
580e5d0e473Sopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_GET_STATUS, 1);
581e5d0e473Sopenharmony_ci    gsmSmsCbHandler->ProcessEvent(event);
582e5d0e473Sopenharmony_ci    gsmSmsCbHandler->HandleCbMessage(message);
583e5d0e473Sopenharmony_ci    EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0);
584e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmSmsCbHandler->FindCbMessage(cbMessage) == nullptr);
585e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage));
586e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->SendCbMessageBroadcast(cbMessage));
587e5d0e473Sopenharmony_ci    cbMessage->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
588e5d0e473Sopenharmony_ci    EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 1);
589e5d0e473Sopenharmony_ci    cbMessage->cbHeader_->totalPages = 1;
590e5d0e473Sopenharmony_ci    EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0x01);
591e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage));
592e5d0e473Sopenharmony_ci    CbInfo cbInfo;
593e5d0e473Sopenharmony_ci    gsmSmsCbHandler->cbMsgList_.push_back(cbInfo);
594e5d0e473Sopenharmony_ci    EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0x01);
595e5d0e473Sopenharmony_ci    cbMessage = nullptr;
596e5d0e473Sopenharmony_ci    message = nullptr;
597e5d0e473Sopenharmony_ci    event = nullptr;
598e5d0e473Sopenharmony_ci    gsmSmsCbHandler->ProcessEvent(event);
599e5d0e473Sopenharmony_ci    SmsCbData::CbData sendData;
600e5d0e473Sopenharmony_ci    gsmSmsCbHandler->GetCbData(cbMessage, sendData);
601e5d0e473Sopenharmony_ci    EventFwk::Want want;
602e5d0e473Sopenharmony_ci    gsmSmsCbHandler->PackageWantData(sendData, want);
603e5d0e473Sopenharmony_ci    gsmSmsCbHandler->HandleCbMessage(message);
604e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->CheckCbActive(cbMessage));
605e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->AddCbMessageToList(cbMessage));
606e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmSmsCbHandler->SendCbMessageBroadcast(cbMessage));
607e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmSmsCbHandler->FindCbMessage(cbMessage) == nullptr);
608e5d0e473Sopenharmony_ci    EXPECT_EQ(gsmSmsCbHandler->CheckCbMessage(cbMessage), 0);
609e5d0e473Sopenharmony_ci}
610e5d0e473Sopenharmony_ci
611e5d0e473Sopenharmony_ci/**
612e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecOperator_0001
613e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodec::operator==
614e5d0e473Sopenharmony_ci * @tc.desc     Function test
615e5d0e473Sopenharmony_ci */
616e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecOperator_0001, Function | MediumTest | Level1)
617e5d0e473Sopenharmony_ci{
618e5d0e473Sopenharmony_ci    GsmCbCodec gsmCbCodec1;
619e5d0e473Sopenharmony_ci    GsmCbCodec gsmCbCodec2;
620e5d0e473Sopenharmony_ci    const std::vector<unsigned char> pdu = {0x01, 0x02};
621e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2);
622e5d0e473Sopenharmony_ci
623e5d0e473Sopenharmony_ci    bool ret = gsmCbCodec2.ParamsCheck(pdu);
624e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2);
625e5d0e473Sopenharmony_ci
626e5d0e473Sopenharmony_ci    gsmCbCodec2.cbHeader_ = nullptr;
627e5d0e473Sopenharmony_ci    ret = gsmCbCodec1.ParamsCheck(pdu);
628e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmCbCodec1 == gsmCbCodec2);
629e5d0e473Sopenharmony_ci
630e5d0e473Sopenharmony_ci    ret = gsmCbCodec2.ParamsCheck(pdu);
631e5d0e473Sopenharmony_ci    EXPECT_TRUE(gsmCbCodec1 == gsmCbCodec2);
632e5d0e473Sopenharmony_ci}
633e5d0e473Sopenharmony_ci
634e5d0e473Sopenharmony_ci/**
635e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_PickOneByte_0001
636e5d0e473Sopenharmony_ci * @tc.name     Test PickOneByte
637e5d0e473Sopenharmony_ci * @tc.desc     Function test
638e5d0e473Sopenharmony_ci */
639e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, PickOneByte_0001, Function | MediumTest | Level1)
640e5d0e473Sopenharmony_ci{
641e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
642e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
643e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu(GsmSmsCbHandler::MAX_CB_MSG_LEN + 1, 0x01);
644e5d0e473Sopenharmony_ci    bool ret = cbMsg->PduAnalysis(pdu);
645e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
646e5d0e473Sopenharmony_ci}
647e5d0e473Sopenharmony_ci
648e5d0e473Sopenharmony_ci/**
649e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GetPduData_0001
650e5d0e473Sopenharmony_ci * @tc.name     Test GetPduData
651e5d0e473Sopenharmony_ci * @tc.desc     Function test
652e5d0e473Sopenharmony_ci */
653e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GetPduData_0001, Function | MediumTest | Level1)
654e5d0e473Sopenharmony_ci{
655e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
656e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
657e5d0e473Sopenharmony_ci    std::vector<unsigned char> dataPdu = {0x01};
658e5d0e473Sopenharmony_ci    cbMsg->GetPduData(dataPdu);
659e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbMsg->cbPduBuffer_ == nullptr);
660e5d0e473Sopenharmony_ci}
661e5d0e473Sopenharmony_ci
662e5d0e473Sopenharmony_ci/**
663e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_ConvertToUTF8_0001
664e5d0e473Sopenharmony_ci * @tc.name     Test ConvertToUTF8
665e5d0e473Sopenharmony_ci * @tc.desc     Function test
666e5d0e473Sopenharmony_ci */
667e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, ConvertToUTF8_0001, Function | MediumTest | Level1)
668e5d0e473Sopenharmony_ci{
669e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
670e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
671e5d0e473Sopenharmony_ci    const std::string raw = "raw";
672e5d0e473Sopenharmony_ci    std::string message = "message";
673e5d0e473Sopenharmony_ci    cbMsg->ConvertToUTF8(raw, message);
674e5d0e473Sopenharmony_ci    EXPECT_TRUE(cbMsg->cbHeader_ == nullptr);
675e5d0e473Sopenharmony_ci}
676e5d0e473Sopenharmony_ci
677e5d0e473Sopenharmony_ci/**
678e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_DecodeGeneralDcs_0001
679e5d0e473Sopenharmony_ci * @tc.name     Test DecodeGeneralDcs
680e5d0e473Sopenharmony_ci * @tc.desc     Function test
681e5d0e473Sopenharmony_ci */
682e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, DecodeGeneralDcs_0001, Function | MediumTest | Level1)
683e5d0e473Sopenharmony_ci{
684e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
685e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
686e5d0e473Sopenharmony_ci    const uint8_t dcsData = 0x04;
687e5d0e473Sopenharmony_ci    GsmCbCodec::GsmCbMsgDcs dcs = {};
688e5d0e473Sopenharmony_ci    uint8_t tmpScheme = (dcsData & 0x0C) >> 0x02;
689e5d0e473Sopenharmony_ci    EXPECT_EQ(tmpScheme, 0x01);
690e5d0e473Sopenharmony_ci    cbMsg->DecodeGeneralDcs(dcsData, dcs);
691e5d0e473Sopenharmony_ci    EXPECT_EQ(dcs.codingScheme, DATA_CODING_8BIT);
692e5d0e473Sopenharmony_ci}
693e5d0e473Sopenharmony_ci
694e5d0e473Sopenharmony_ci/**
695e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_DecodeCbMsgDCS_0001
696e5d0e473Sopenharmony_ci * @tc.name     Test DecodeCbMsgDCS
697e5d0e473Sopenharmony_ci * @tc.desc     Function test
698e5d0e473Sopenharmony_ci */
699e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, DecodeCbMsgDCS_0001, Function | MediumTest | Level1)
700e5d0e473Sopenharmony_ci{
701e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
702e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
703e5d0e473Sopenharmony_ci    const uint8_t dcsData = 0xE0;
704e5d0e473Sopenharmony_ci    const unsigned short iosData = 1;
705e5d0e473Sopenharmony_ci    GsmCbCodec::GsmCbMsgDcs dcs = {};
706e5d0e473Sopenharmony_ci    cbMsg->DecodeCbMsgDCS(dcsData, iosData, dcs);
707e5d0e473Sopenharmony_ci    EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_WAP);
708e5d0e473Sopenharmony_ci
709e5d0e473Sopenharmony_ci    const uint8_t dcsData1 = 0xF0;
710e5d0e473Sopenharmony_ci    cbMsg->DecodeCbMsgDCS(dcsData1, iosData, dcs);
711e5d0e473Sopenharmony_ci    EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_CLASS_CODING);
712e5d0e473Sopenharmony_ci
713e5d0e473Sopenharmony_ci    const uint8_t dcsData2 = 0xD0;
714e5d0e473Sopenharmony_ci    cbMsg->DecodeCbMsgDCS(dcsData2, iosData, dcs);
715e5d0e473Sopenharmony_ci    EXPECT_EQ(dcs.codingGroup, GsmCbCodec::SMS_CBMSG_CODGRP_GENERAL_DCS);
716e5d0e473Sopenharmony_ci}
717e5d0e473Sopenharmony_ci
718e5d0e473Sopenharmony_ci/**
719e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecToString_0001
720e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodecToString
721e5d0e473Sopenharmony_ci * @tc.desc     Function test
722e5d0e473Sopenharmony_ci */
723e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecToString_0001, Function | MediumTest | Level1)
724e5d0e473Sopenharmony_ci{
725e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
726e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
727e5d0e473Sopenharmony_ci    std::string ret = cbMsg->ToString();
728e5d0e473Sopenharmony_ci    EXPECT_EQ(ret, "GsmCbCodec Header nullptr");
729e5d0e473Sopenharmony_ci}
730e5d0e473Sopenharmony_ci
731e5d0e473Sopenharmony_ci/**
732e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecGetBranch_0001
733e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodecGetBranch
734e5d0e473Sopenharmony_ci * @tc.desc     Function test
735e5d0e473Sopenharmony_ci */
736e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetBranch_0001, Function | MediumTest | Level1)
737e5d0e473Sopenharmony_ci{
738e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
739e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
740e5d0e473Sopenharmony_ci    int8_t cbPriority = 1;
741e5d0e473Sopenharmony_ci    bool ret = cbMsg->GetPriority(cbPriority);
742e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
743e5d0e473Sopenharmony_ci
744e5d0e473Sopenharmony_ci    uint8_t geoScope = 1;
745e5d0e473Sopenharmony_ci    ret = cbMsg->GetGeoScope(geoScope);
746e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
747e5d0e473Sopenharmony_ci
748e5d0e473Sopenharmony_ci    uint16_t cbSerial = 1;
749e5d0e473Sopenharmony_ci    ret = cbMsg->GetSerialNum(cbSerial);
750e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
751e5d0e473Sopenharmony_ci
752e5d0e473Sopenharmony_ci    uint16_t cbCategoty = 1;
753e5d0e473Sopenharmony_ci    ret = cbMsg->GetServiceCategory(cbCategoty);
754e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
755e5d0e473Sopenharmony_ci
756e5d0e473Sopenharmony_ci    bool primary = true;
757e5d0e473Sopenharmony_ci    ret = cbMsg->IsEtwsPrimary(primary);
758e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
759e5d0e473Sopenharmony_ci
760e5d0e473Sopenharmony_ci    ret = cbMsg->IsEtwsMessage(primary);
761e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
762e5d0e473Sopenharmony_ci
763e5d0e473Sopenharmony_ci    ret = cbMsg->IsCmasMessage(primary);
764e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
765e5d0e473Sopenharmony_ci}
766e5d0e473Sopenharmony_ci
767e5d0e473Sopenharmony_ci/**
768e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GetWarningType_0001
769e5d0e473Sopenharmony_ci * @tc.name     Test GetWarningType
770e5d0e473Sopenharmony_ci * @tc.desc     Function test
771e5d0e473Sopenharmony_ci */
772e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GetWarningType_0001, Function | MediumTest | Level1)
773e5d0e473Sopenharmony_ci{
774e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
775e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
776e5d0e473Sopenharmony_ci    uint16_t type = 1;
777e5d0e473Sopenharmony_ci    bool ret = cbMsg->GetWarningType(type);
778e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
779e5d0e473Sopenharmony_ci
780e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = {0x01};
781e5d0e473Sopenharmony_ci    ret = cbMsg->ParamsCheck(pdu);
782e5d0e473Sopenharmony_ci    ret = cbMsg->GetWarningType(type);
783e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
784e5d0e473Sopenharmony_ci
785e5d0e473Sopenharmony_ci    type = -2; // OTHER_TYPE = -2
786e5d0e473Sopenharmony_ci    ret = cbMsg->GetWarningType(type);
787e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
788e5d0e473Sopenharmony_ci}
789e5d0e473Sopenharmony_ci
790e5d0e473Sopenharmony_ci/**
791e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecIsEtws_0001
792e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodecIsEtws
793e5d0e473Sopenharmony_ci * @tc.desc     Function test
794e5d0e473Sopenharmony_ci */
795e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecIsEtws_0001, Function | MediumTest | Level1)
796e5d0e473Sopenharmony_ci{
797e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
798e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
799e5d0e473Sopenharmony_ci    bool alert = true;
800e5d0e473Sopenharmony_ci    bool ret = cbMsg->IsEtwsEmergencyUserAlert(alert);
801e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
802e5d0e473Sopenharmony_ci
803e5d0e473Sopenharmony_ci    ret = cbMsg->IsEtwsPopupAlert(alert);
804e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
805e5d0e473Sopenharmony_ci}
806e5d0e473Sopenharmony_ci
807e5d0e473Sopenharmony_ci/**
808e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecGetCmas_0001
809e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodecGetCmas
810e5d0e473Sopenharmony_ci * @tc.desc     Function test
811e5d0e473Sopenharmony_ci */
812e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetCmas_0001, Function | MediumTest | Level1)
813e5d0e473Sopenharmony_ci{
814e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
815e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
816e5d0e473Sopenharmony_ci    uint8_t severity = 1;
817e5d0e473Sopenharmony_ci    bool ret = cbMsg->GetCmasSeverity(severity);
818e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
819e5d0e473Sopenharmony_ci
820e5d0e473Sopenharmony_ci    uint8_t urgency = 1;
821e5d0e473Sopenharmony_ci    ret = cbMsg->GetCmasUrgency(urgency);
822e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
823e5d0e473Sopenharmony_ci
824e5d0e473Sopenharmony_ci    uint8_t certainty = 1;
825e5d0e473Sopenharmony_ci    ret = cbMsg->GetCmasCertainty(certainty);
826e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
827e5d0e473Sopenharmony_ci
828e5d0e473Sopenharmony_ci    uint8_t cmasClass = 1;
829e5d0e473Sopenharmony_ci    ret = cbMsg->GetCmasMessageClass(cmasClass);
830e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
831e5d0e473Sopenharmony_ci}
832e5d0e473Sopenharmony_ci
833e5d0e473Sopenharmony_ci/**
834e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GsmCbCodecGetBranch_0002
835e5d0e473Sopenharmony_ci * @tc.name     Test GsmCbCodecGetBranch
836e5d0e473Sopenharmony_ci * @tc.desc     Function test
837e5d0e473Sopenharmony_ci */
838e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, GsmCbCodecGetBranch_0002, Function | MediumTest | Level1)
839e5d0e473Sopenharmony_ci{
840e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
841e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
842e5d0e473Sopenharmony_ci    uint16_t msgId = 1;
843e5d0e473Sopenharmony_ci    bool ret = cbMsg->GetMessageId(msgId);
844e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
845e5d0e473Sopenharmony_ci
846e5d0e473Sopenharmony_ci    uint8_t msgType = 1;
847e5d0e473Sopenharmony_ci    ret = cbMsg->GetMsgType(msgType);
848e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
849e5d0e473Sopenharmony_ci
850e5d0e473Sopenharmony_ci    ret = cbMsg->GetLangType(msgType);
851e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
852e5d0e473Sopenharmony_ci
853e5d0e473Sopenharmony_ci    ret = cbMsg->GetDcs(msgType);
854e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
855e5d0e473Sopenharmony_ci
856e5d0e473Sopenharmony_ci    int64_t receiveTime = 1;
857e5d0e473Sopenharmony_ci    ret = cbMsg->GetReceiveTime(receiveTime);
858e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
859e5d0e473Sopenharmony_ci}
860e5d0e473Sopenharmony_ci
861e5d0e473Sopenharmony_ci/**
862e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_Decode2gHeaderBranch_0001
863e5d0e473Sopenharmony_ci * @tc.name     Test Decode2gHeaderBranch
864e5d0e473Sopenharmony_ci * @tc.desc     Function test
865e5d0e473Sopenharmony_ci */
866e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gHeaderBranch_0001, Function | MediumTest | Level1)
867e5d0e473Sopenharmony_ci{
868e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
869e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
870e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(ETWS_PDU);
871e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU);
872e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
873e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
874e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++)
875e5d0e473Sopenharmony_ci    {
876e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
877e5d0e473Sopenharmony_ci    }
878e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
879e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
880e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_;
881e5d0e473Sopenharmony_ci    bool ret = gsmMsg->Decode2gHeader();
882e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
883e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderEtws();
884e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
885e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderCommonCb();
886e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
887e5d0e473Sopenharmony_ci
888e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1;
889e5d0e473Sopenharmony_ci    EXPECT_FALSE(gsmMsg->cbHeader_->msgId >= PWS_FIRST_ID);
890e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderEtws();
891e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
892e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1;
893e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderCommonCb();
894e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
895e5d0e473Sopenharmony_ci
896e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 2;
897e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeader();
898e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
899e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 2;
900e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderCommonCb();
901e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
902e5d0e473Sopenharmony_ci
903e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 3;
904e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeader();
905e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
906e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 3;
907e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderCommonCb();
908e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
909e5d0e473Sopenharmony_ci}
910e5d0e473Sopenharmony_ci
911e5d0e473Sopenharmony_ci/**
912e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_Decode2gHeaderCommonCb_0001
913e5d0e473Sopenharmony_ci * @tc.name     Test Decode2gHeaderCommonCb
914e5d0e473Sopenharmony_ci * @tc.desc     Function test
915e5d0e473Sopenharmony_ci */
916e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gHeaderCommonCb_0001, Function | MediumTest | Level1)
917e5d0e473Sopenharmony_ci{
918e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
919e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
920e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(ETWS_PDU);
921e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU);
922e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
923e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
924e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++)
925e5d0e473Sopenharmony_ci    {
926e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
927e5d0e473Sopenharmony_ci    }
928e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
929e5d0e473Sopenharmony_ci    ASSERT_NE(gsmMsg, nullptr);
930e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = nullptr;
931e5d0e473Sopenharmony_ci    bool ret = gsmMsg->Decode2gHeaderCommonCb();
932e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
933e5d0e473Sopenharmony_ci
934e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
935e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->totalPages = 18; // MAX_PAGE_NUM
936e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gHeaderCommonCb();
937e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
938e5d0e473Sopenharmony_ci}
939e5d0e473Sopenharmony_ci
940e5d0e473Sopenharmony_ci/**
941e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_Decode2gCbMsg_0001
942e5d0e473Sopenharmony_ci * @tc.name     Test Decode2gCbMsg
943e5d0e473Sopenharmony_ci * @tc.desc     Function test
944e5d0e473Sopenharmony_ci */
945e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg_0001, Function | MediumTest | Level1)
946e5d0e473Sopenharmony_ci{
947e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
948e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
949e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(ETWS_PDU);
950e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(ETWS_PDU);
951e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
952e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
953e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++)
954e5d0e473Sopenharmony_ci    {
955e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
956e5d0e473Sopenharmony_ci    }
957e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
958e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->dcs.codingScheme = DATA_CODING_8BIT;
959e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = gsmMsg->cbPduBuffer_->totolLength_ - 1;
960e5d0e473Sopenharmony_ci    bool ret = gsmMsg->Decode2gCbMsg();
961e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
962e5d0e473Sopenharmony_ci
963e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->curPosition_ = 0;
964e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
965e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
966e5d0e473Sopenharmony_ci
967e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->dcs.iso639Lang[0] = 0;
968e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
969e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
970e5d0e473Sopenharmony_ci
971e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->dcs.iso639Lang[0] = 1;
972e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
973e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
974e5d0e473Sopenharmony_ci
975e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
976e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
977e5d0e473Sopenharmony_ci
978e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_->pduBuffer_ = nullptr;
979e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
980e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
981e5d0e473Sopenharmony_ci
982e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->dcs.codingScheme = DATA_CODING_AUTO;
983e5d0e473Sopenharmony_ci    ret = gsmMsg->Decode2gCbMsg();
984e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
985e5d0e473Sopenharmony_ci}
986e5d0e473Sopenharmony_ci
987e5d0e473Sopenharmony_ci/**
988e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_Decode2gCbMsg7bit_0001
989e5d0e473Sopenharmony_ci * @tc.name     Test Decode2gCbMsg7bit
990e5d0e473Sopenharmony_ci * @tc.desc     Function test
991e5d0e473Sopenharmony_ci */
992e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg7bit_0001, Function | MediumTest | Level1)
993e5d0e473Sopenharmony_ci{
994e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
995e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
996e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(0);
997e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
998e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
999e5d0e473Sopenharmony_ci    ASSERT_NE(gsmMsg, nullptr);
1000e5d0e473Sopenharmony_ci    uint16_t dataLen = 5;
1001e5d0e473Sopenharmony_ci    bool ret = gsmMsg->Decode2gCbMsg7bit(dataLen);
1002e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
1003e5d0e473Sopenharmony_ci}
1004e5d0e473Sopenharmony_ci
1005e5d0e473Sopenharmony_ci/**
1006e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_Decode2gCbMsg7bit_0002
1007e5d0e473Sopenharmony_ci * @tc.name     Test Decode2gCbMsg7bit
1008e5d0e473Sopenharmony_ci * @tc.desc     Function test
1009e5d0e473Sopenharmony_ci */
1010e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Decode2gCbMsg7bit_0002, Function | MediumTest | Level1)
1011e5d0e473Sopenharmony_ci{
1012e5d0e473Sopenharmony_ci    auto cbMsg = std::make_shared<GsmCbCodec>();
1013e5d0e473Sopenharmony_ci    ASSERT_NE(cbMsg, nullptr);
1014e5d0e473Sopenharmony_ci    cbMsg->CreateCbMessage(CMAS_JP_PDU);
1015e5d0e473Sopenharmony_ci    std::vector<unsigned char> pdu = StringUtils::HexToByteVector(CMAS_JP_PDU);
1016e5d0e473Sopenharmony_ci    cbMsg->cbPduBuffer_ = std::make_shared<GsmCbPduDecodeBuffer>(pdu.size());
1017e5d0e473Sopenharmony_ci    cbMsg->cbHeader_ = std::make_shared<GsmCbCodec::GsmCbMessageHeader>();
1018e5d0e473Sopenharmony_ci    for (size_t index = 0; index < pdu.size() && index < cbMsg->cbPduBuffer_->GetSize(); index++)
1019e5d0e473Sopenharmony_ci    {
1020e5d0e473Sopenharmony_ci        cbMsg->cbPduBuffer_->pduBuffer_[index] = static_cast<char>(pdu[index]);
1021e5d0e473Sopenharmony_ci    }
1022e5d0e473Sopenharmony_ci    auto gsmMsg = std::make_shared<GsmCbGsmCodec>(cbMsg->cbHeader_, cbMsg->cbPduBuffer_, cbMsg);
1023e5d0e473Sopenharmony_ci    ASSERT_NE(gsmMsg, nullptr);
1024e5d0e473Sopenharmony_ci    gsmMsg->cbPduBuffer_ = cbMsg->cbPduBuffer_;
1025e5d0e473Sopenharmony_ci    gsmMsg->cbHeader_->dcs.iso639Lang[0] = 1;
1026e5d0e473Sopenharmony_ci    uint16_t dataLen = 5;
1027e5d0e473Sopenharmony_ci    bool ret = gsmMsg->Decode2gCbMsg7bit(dataLen);
1028e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1029e5d0e473Sopenharmony_ci}
1030e5d0e473Sopenharmony_ci
1031e5d0e473Sopenharmony_ci/**
1032e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_misc_manager_CloseCBRange_0001
1033e5d0e473Sopenharmony_ci * @tc.name     Test CloseCBRange
1034e5d0e473Sopenharmony_ci * @tc.desc     Function test
1035e5d0e473Sopenharmony_ci */
1036e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_CloseCBRange_0001, Function | MediumTest | Level1)
1037e5d0e473Sopenharmony_ci{
1038e5d0e473Sopenharmony_ci    auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID);
1039e5d0e473Sopenharmony_ci    ASSERT_NE(smsMiscManager, nullptr);
1040e5d0e473Sopenharmony_ci    uint32_t fromMsgId = 2;
1041e5d0e473Sopenharmony_ci    uint32_t toMsgId = 2;
1042e5d0e473Sopenharmony_ci    SmsMiscManager::gsmCBRangeInfo rangeInfo(2, 2);
1043e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1044e5d0e473Sopenharmony_ci    bool ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1045e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1046e5d0e473Sopenharmony_ci
1047e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1048e5d0e473Sopenharmony_ci    toMsgId = 3;
1049e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1050e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1051e5d0e473Sopenharmony_ci
1052e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1053e5d0e473Sopenharmony_ci    toMsgId = 1;
1054e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1055e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1056e5d0e473Sopenharmony_ci
1057e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1058e5d0e473Sopenharmony_ci    fromMsgId = 1;
1059e5d0e473Sopenharmony_ci    toMsgId = 2;
1060e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1061e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1062e5d0e473Sopenharmony_ci
1063e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1064e5d0e473Sopenharmony_ci    toMsgId = 3;
1065e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1066e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1067e5d0e473Sopenharmony_ci
1068e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1069e5d0e473Sopenharmony_ci    fromMsgId = 3;
1070e5d0e473Sopenharmony_ci    toMsgId = 2;
1071e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1072e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1073e5d0e473Sopenharmony_ci
1074e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo};
1075e5d0e473Sopenharmony_ci    toMsgId = 1;
1076e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1077e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1078e5d0e473Sopenharmony_ci
1079e5d0e473Sopenharmony_ci    SmsMiscManager::gsmCBRangeInfo rangeInfo1(2, 3);
1080e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo1};
1081e5d0e473Sopenharmony_ci    toMsgId = 3;
1082e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1083e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1084e5d0e473Sopenharmony_ci
1085e5d0e473Sopenharmony_ci    SmsMiscManager::gsmCBRangeInfo rangeInfo2(2, 1);
1086e5d0e473Sopenharmony_ci    smsMiscManager->rangeList_ = {rangeInfo2};
1087e5d0e473Sopenharmony_ci    fromMsgId = 1;
1088e5d0e473Sopenharmony_ci    toMsgId = 1;
1089e5d0e473Sopenharmony_ci    ret = smsMiscManager->CloseCBRange(fromMsgId, toMsgId);
1090e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1091e5d0e473Sopenharmony_ci}
1092e5d0e473Sopenharmony_ci
1093e5d0e473Sopenharmony_ci/**
1094e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_misc_manager_SplitMidValue_0001
1095e5d0e473Sopenharmony_ci * @tc.name     Test SplitMidValue
1096e5d0e473Sopenharmony_ci * @tc.desc     Function test
1097e5d0e473Sopenharmony_ci */
1098e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_SplitMidValue_0001, Function | MediumTest | Level1)
1099e5d0e473Sopenharmony_ci{
1100e5d0e473Sopenharmony_ci    auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID);
1101e5d0e473Sopenharmony_ci    ASSERT_NE(smsMiscManager, nullptr);
1102e5d0e473Sopenharmony_ci    std::string value = "";
1103e5d0e473Sopenharmony_ci    std::string start = "";
1104e5d0e473Sopenharmony_ci    std::string end = "";
1105e5d0e473Sopenharmony_ci    const std::string delimiter = ":";
1106e5d0e473Sopenharmony_ci    bool ret = smsMiscManager->SplitMidValue(value, start, end, delimiter);
1107e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
1108e5d0e473Sopenharmony_ci
1109e5d0e473Sopenharmony_ci    value = ":value";
1110e5d0e473Sopenharmony_ci    ret = smsMiscManager->SplitMidValue(value, start, end, delimiter);
1111e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
1112e5d0e473Sopenharmony_ci
1113e5d0e473Sopenharmony_ci    value = "value:";
1114e5d0e473Sopenharmony_ci    ret = smsMiscManager->SplitMidValue(value, start, end, delimiter);
1115e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
1116e5d0e473Sopenharmony_ci
1117e5d0e473Sopenharmony_ci    value = "value";
1118e5d0e473Sopenharmony_ci    ret = smsMiscManager->SplitMidValue(value, start, end, delimiter);
1119e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1120e5d0e473Sopenharmony_ci
1121e5d0e473Sopenharmony_ci    value = "smsMisc:value";
1122e5d0e473Sopenharmony_ci    ret = smsMiscManager->SplitMidValue(value, start, end, delimiter);
1123e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1124e5d0e473Sopenharmony_ci}
1125e5d0e473Sopenharmony_ci
1126e5d0e473Sopenharmony_ci/**
1127e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_misc_DelSimMessage_0001
1128e5d0e473Sopenharmony_ci * @tc.name     Test DelSimMessage
1129e5d0e473Sopenharmony_ci * @tc.desc     Function test
1130e5d0e473Sopenharmony_ci */
1131e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_DelSimMessage_0001, Function | MediumTest | Level1)
1132e5d0e473Sopenharmony_ci{
1133e5d0e473Sopenharmony_ci    auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID);
1134e5d0e473Sopenharmony_ci    ASSERT_NE(smsMiscManager, nullptr);
1135e5d0e473Sopenharmony_ci    uint32_t msgIndex = 1;
1136e5d0e473Sopenharmony_ci    int32_t ret = smsMiscManager->DelSimMessage(msgIndex);
1137e5d0e473Sopenharmony_ci    EXPECT_EQ(ret, TELEPHONY_ERR_SLOTID_INVALID);
1138e5d0e473Sopenharmony_ci}
1139e5d0e473Sopenharmony_ci
1140e5d0e473Sopenharmony_ci/**
1141e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_misc_SetSmscAddr_0001
1142e5d0e473Sopenharmony_ci * @tc.name     Test SetSmscAddr
1143e5d0e473Sopenharmony_ci * @tc.desc     Function test
1144e5d0e473Sopenharmony_ci */
1145e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_manager_SetSmscAddr_0001, Function | MediumTest | Level1)
1146e5d0e473Sopenharmony_ci{
1147e5d0e473Sopenharmony_ci    auto smsMiscManager = std::make_shared<SmsMiscManager>(INVALID_SLOTID);
1148e5d0e473Sopenharmony_ci    ASSERT_NE(smsMiscManager, nullptr);
1149e5d0e473Sopenharmony_ci    const std::string scAddr = "";
1150e5d0e473Sopenharmony_ci    int32_t ret = smsMiscManager->SetSmscAddr(scAddr);
1151e5d0e473Sopenharmony_ci    EXPECT_EQ(ret, TELEPHONY_ERR_RIL_CMD_FAIL);
1152e5d0e473Sopenharmony_ci    std::u16string smscAddress = u"";
1153e5d0e473Sopenharmony_ci    ret = smsMiscManager->GetSmscAddr(smscAddress);
1154e5d0e473Sopenharmony_ci    EXPECT_EQ(ret, TELEPHONY_ERR_SUCCESS);
1155e5d0e473Sopenharmony_ci}
1156e5d0e473Sopenharmony_ci
1157e5d0e473Sopenharmony_ci/**
1158e5d0e473Sopenharmony_ci * @tc.number   Telephony_SmsMmsGtest_GetSmsStateEventIntValue_0001
1159e5d0e473Sopenharmony_ci * @tc.name     Test GetSmsStateEventIntValue
1160e5d0e473Sopenharmony_ci * @tc.desc     Function test
1161e5d0e473Sopenharmony_ci */
1162e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, misc_GetSmsStateEventIntValue_0001, Function | MediumTest | Level1)
1163e5d0e473Sopenharmony_ci{
1164e5d0e473Sopenharmony_ci    std::shared_ptr<CommonEventSubscribeInfo> subscribeInfo = std::make_shared<CommonEventSubscribeInfo>();
1165e5d0e473Sopenharmony_ci    std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber =
1166e5d0e473Sopenharmony_ci        std::make_shared<SmsStateEventSubscriber>(*subscribeInfo);
1167e5d0e473Sopenharmony_ci    std::string event = "event";
1168e5d0e473Sopenharmony_ci    smsStateEventSubscriber->smsStateEvenMapIntValues_[event] = COMMON_EVENT_SMS_CB_RECEIVE_COMPLETED;
1169e5d0e473Sopenharmony_ci    auto ret = smsStateEventSubscriber->GetSmsStateEventIntValue(event);
1170e5d0e473Sopenharmony_ci    EXPECT_EQ(ret, COMMON_EVENT_SMS_CB_RECEIVE_COMPLETED);
1171e5d0e473Sopenharmony_ci}
1172e5d0e473Sopenharmony_ci
1173e5d0e473Sopenharmony_ci/**
1174e5d0e473Sopenharmony_ci * @tc.number   Telephony_Sms_OnAddSystemAbility_0001
1175e5d0e473Sopenharmony_ci * @tc.name     Test OnAddSystemAbility
1176e5d0e473Sopenharmony_ci * @tc.desc     Function test
1177e5d0e473Sopenharmony_ci */
1178e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_OnAddSystemAbility_0001, Function | MediumTest | Level1)
1179e5d0e473Sopenharmony_ci{
1180e5d0e473Sopenharmony_ci    std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber = nullptr;
1181e5d0e473Sopenharmony_ci    std::shared_ptr<SmsStateObserver::SystemAbilityStatusChangeListener> sysAbilityStatus =
1182e5d0e473Sopenharmony_ci        std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber);
1183e5d0e473Sopenharmony_ci    int32_t systemAbilityId = 1;
1184e5d0e473Sopenharmony_ci    const std::string deviceId = "123";
1185e5d0e473Sopenharmony_ci    sysAbilityStatus->OnAddSystemAbility(systemAbilityId, deviceId);
1186e5d0e473Sopenharmony_ci    EXPECT_TRUE(systemAbilityId != COMMON_EVENT_SERVICE_ID);
1187e5d0e473Sopenharmony_ci
1188e5d0e473Sopenharmony_ci    systemAbilityId = COMMON_EVENT_SERVICE_ID;
1189e5d0e473Sopenharmony_ci    sysAbilityStatus->OnAddSystemAbility(systemAbilityId, deviceId);
1190e5d0e473Sopenharmony_ci    EXPECT_TRUE(sysAbilityStatus->sub_ == nullptr);
1191e5d0e473Sopenharmony_ci}
1192e5d0e473Sopenharmony_ci
1193e5d0e473Sopenharmony_ci/**
1194e5d0e473Sopenharmony_ci * @tc.number   Telephony_Sms_OnRemoveSystemAbility_0001
1195e5d0e473Sopenharmony_ci * @tc.name     Test OnRemoveSystemAbility
1196e5d0e473Sopenharmony_ci * @tc.desc     Function test
1197e5d0e473Sopenharmony_ci */
1198e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_OnRemoveSystemAbility_0001, Function | MediumTest | Level1)
1199e5d0e473Sopenharmony_ci{
1200e5d0e473Sopenharmony_ci    std::shared_ptr<CommonEventSubscribeInfo> subscribeInfo = std::make_shared<CommonEventSubscribeInfo>();
1201e5d0e473Sopenharmony_ci    std::shared_ptr<SmsStateEventSubscriber> smsStateEventSubscriber = nullptr;
1202e5d0e473Sopenharmony_ci    std::shared_ptr<SmsStateObserver::SystemAbilityStatusChangeListener> sysAbilityStatus =
1203e5d0e473Sopenharmony_ci        std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber);
1204e5d0e473Sopenharmony_ci    int32_t systemAbilityId = 1;
1205e5d0e473Sopenharmony_ci    const std::string deviceId = "123";
1206e5d0e473Sopenharmony_ci    sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId);
1207e5d0e473Sopenharmony_ci    EXPECT_TRUE(systemAbilityId != COMMON_EVENT_SERVICE_ID);
1208e5d0e473Sopenharmony_ci
1209e5d0e473Sopenharmony_ci    systemAbilityId = COMMON_EVENT_SERVICE_ID;
1210e5d0e473Sopenharmony_ci    sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId);
1211e5d0e473Sopenharmony_ci    EXPECT_TRUE(systemAbilityId == COMMON_EVENT_SERVICE_ID);
1212e5d0e473Sopenharmony_ci
1213e5d0e473Sopenharmony_ci    sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId);
1214e5d0e473Sopenharmony_ci    EXPECT_TRUE(sysAbilityStatus->sub_ == nullptr);
1215e5d0e473Sopenharmony_ci
1216e5d0e473Sopenharmony_ci    smsStateEventSubscriber = std::make_shared<SmsStateEventSubscriber>(*subscribeInfo);
1217e5d0e473Sopenharmony_ci    sysAbilityStatus =
1218e5d0e473Sopenharmony_ci        std::make_shared<SmsStateObserver::SystemAbilityStatusChangeListener>(smsStateEventSubscriber);
1219e5d0e473Sopenharmony_ci    sysAbilityStatus->OnRemoveSystemAbility(systemAbilityId, deviceId);
1220e5d0e473Sopenharmony_ci    EXPECT_TRUE(sysAbilityStatus->sub_ != nullptr);
1221e5d0e473Sopenharmony_ci}
1222e5d0e473Sopenharmony_ci
1223e5d0e473Sopenharmony_ci/**
1224e5d0e473Sopenharmony_ci * @tc.number   Telephony_Sms_GetSmsUserDataMultipage_0001
1225e5d0e473Sopenharmony_ci * @tc.name     Test GetSmsUserDataMultipage
1226e5d0e473Sopenharmony_ci * @tc.desc     Function test
1227e5d0e473Sopenharmony_ci */
1228e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_GetSmsUserDataMultipage_0001, Function | MediumTest | Level1)
1229e5d0e473Sopenharmony_ci{
1230e5d0e473Sopenharmony_ci    auto reliabilityHandler = std::make_shared<SmsReceiveReliabilityHandler>(INVALID_SLOTID);
1231e5d0e473Sopenharmony_ci    int32_t smsPagesCount = 1;
1232e5d0e473Sopenharmony_ci    SmsReceiveIndexer smsReceiveIndexer;
1233e5d0e473Sopenharmony_ci    smsReceiveIndexer.msgSeqId_ = 0;
1234e5d0e473Sopenharmony_ci    smsReceiveIndexer.msgRefId_ = 1;
1235e5d0e473Sopenharmony_ci    std::vector<SmsReceiveIndexer> dbIndexers = {smsReceiveIndexer, smsReceiveIndexer};
1236e5d0e473Sopenharmony_ci    int32_t position = -1;
1237e5d0e473Sopenharmony_ci    std::vector<std::string> initialData = {"User1", "User2"};
1238e5d0e473Sopenharmony_ci    std::shared_ptr<std::vector<std::string>> userDataRaws = std::make_shared<std::vector<std::string>>(initialData);
1239e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1240e5d0e473Sopenharmony_ci    EXPECT_TRUE(position < 0);
1241e5d0e473Sopenharmony_ci
1242e5d0e473Sopenharmony_ci    position = 2;
1243e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1244e5d0e473Sopenharmony_ci    EXPECT_TRUE(position >= static_cast<int32_t>(dbIndexers.size()));
1245e5d0e473Sopenharmony_ci
1246e5d0e473Sopenharmony_ci    position = 0;
1247e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1248e5d0e473Sopenharmony_ci    EXPECT_TRUE(dbIndexers[position].GetMsgSeqId() < 1);
1249e5d0e473Sopenharmony_ci
1250e5d0e473Sopenharmony_ci    dbIndexers[position].msgSeqId_ = MAX_SEGMENT_NUM + 1;
1251e5d0e473Sopenharmony_ci    reliabilityHandler->HiSysEventCBResult(true);
1252e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1253e5d0e473Sopenharmony_ci    EXPECT_TRUE(dbIndexers[position].GetMsgSeqId() > MAX_SEGMENT_NUM);
1254e5d0e473Sopenharmony_ci
1255e5d0e473Sopenharmony_ci    dbIndexers[position].msgSeqId_ = 1;
1256e5d0e473Sopenharmony_ci    dbIndexers[position + 1].msgSeqId_ = 0;
1257e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1258e5d0e473Sopenharmony_ci    EXPECT_TRUE(dbIndexers[position + 1].GetMsgSeqId() < 1);
1259e5d0e473Sopenharmony_ci
1260e5d0e473Sopenharmony_ci    dbIndexers.push_back(smsReceiveIndexer);
1261e5d0e473Sopenharmony_ci    dbIndexers[position + 1].msgSeqId_ = MAX_SEGMENT_NUM + 1;
1262e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1263e5d0e473Sopenharmony_ci    EXPECT_TRUE(dbIndexers[position + 1].GetMsgSeqId() > MAX_SEGMENT_NUM);
1264e5d0e473Sopenharmony_ci
1265e5d0e473Sopenharmony_ci    dbIndexers.push_back(smsReceiveIndexer);
1266e5d0e473Sopenharmony_ci    dbIndexers[position + 1].msgSeqId_ = 1;
1267e5d0e473Sopenharmony_ci    reliabilityHandler->GetSmsUserDataMultipage(smsPagesCount, dbIndexers, position, userDataRaws);
1268e5d0e473Sopenharmony_ci    EXPECT_EQ(smsPagesCount, 2);
1269e5d0e473Sopenharmony_ci}
1270e5d0e473Sopenharmony_ci
1271e5d0e473Sopenharmony_ci/**
1272e5d0e473Sopenharmony_ci * @tc.number   Telephony_Sms_SendCacheMapLimitCheck_0001
1273e5d0e473Sopenharmony_ci * @tc.name     Test SendCacheMapLimitCheck
1274e5d0e473Sopenharmony_ci * @tc.desc     Function test
1275e5d0e473Sopenharmony_ci */
1276e5d0e473Sopenharmony_ciHWTEST_F(BranchCbTest, Sms_SendCacheMapLimitCheck_0001, Function | MediumTest | Level1)
1277e5d0e473Sopenharmony_ci{
1278e5d0e473Sopenharmony_ci    std::function<void(std::shared_ptr<SmsSendIndexer>)> fun = nullptr;
1279e5d0e473Sopenharmony_ci    std::shared_ptr<SmsSender> smsSender = std::make_shared<CdmaSmsSender>(INVALID_SLOTID, fun);
1280e5d0e473Sopenharmony_ci    const sptr<ISendShortMessageCallback> sendCallback = nullptr;
1281e5d0e473Sopenharmony_ci    bool ret = smsSender->SendCacheMapLimitCheck(sendCallback);
1282e5d0e473Sopenharmony_ci    EXPECT_FALSE(ret);
1283e5d0e473Sopenharmony_ci    for (size_t i = 0; i < 30; i++)
1284e5d0e473Sopenharmony_ci    {
1285e5d0e473Sopenharmony_ci        smsSender->sendCacheMap_[i] = nullptr;
1286e5d0e473Sopenharmony_ci    }
1287e5d0e473Sopenharmony_ci    ret = smsSender->SendCacheMapLimitCheck(sendCallback);
1288e5d0e473Sopenharmony_ci    EXPECT_TRUE(ret);
1289e5d0e473Sopenharmony_ci}
1290e5d0e473Sopenharmony_ci} // namespace Telephony
1291e5d0e473Sopenharmony_ci} // namespace OHOS
1292