1e5d0e473Sopenharmony_ci/*
2e5d0e473Sopenharmony_ci * Copyright (C) 2023 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#ifndef CDMA_SMS_TEST_H
17e5d0e473Sopenharmony_ci#define CDMA_SMS_TEST_H
18e5d0e473Sopenharmony_ci
19e5d0e473Sopenharmony_ci#include <memory>
20e5d0e473Sopenharmony_ci
21e5d0e473Sopenharmony_ci#include "cdma_sms_common.h"
22e5d0e473Sopenharmony_ci#include "cdma_sms_message.h"
23e5d0e473Sopenharmony_ci#include "sms_send_indexer.h"
24e5d0e473Sopenharmony_ci
25e5d0e473Sopenharmony_cinamespace OHOS {
26e5d0e473Sopenharmony_cinamespace Telephony {
27e5d0e473Sopenharmony_ciclass CdmaSmsTest {
28e5d0e473Sopenharmony_cipublic:
29e5d0e473Sopenharmony_ci    void ProcessTest() const;
30e5d0e473Sopenharmony_ci
31e5d0e473Sopenharmony_ciprivate:
32e5d0e473Sopenharmony_ci    void TestTextBasedSmsDelivery() const;
33e5d0e473Sopenharmony_ci
34e5d0e473Sopenharmony_ci    void TestEncodeSubmitMsg() const;
35e5d0e473Sopenharmony_ci    void TestEncodeDeliverReportMsg() const;
36e5d0e473Sopenharmony_ci    void TestEncodeCancelMsg() const;
37e5d0e473Sopenharmony_ci    void TestEncodeAckMsg() const;
38e5d0e473Sopenharmony_ci
39e5d0e473Sopenharmony_ci    void TestDecodeMsg() const;
40e5d0e473Sopenharmony_ci    void TestDecodeBearerData() const;
41e5d0e473Sopenharmony_ci
42e5d0e473Sopenharmony_ci    void SetPduSeqInfo(const std::size_t size, const std::unique_ptr<CdmaTransportMsg> &transMsg,
43e5d0e473Sopenharmony_ci        const std::size_t index, const uint8_t msgRef8bit) const;
44e5d0e473Sopenharmony_ci    void EncodeMsg(CdmaTransportMsg &msg) const;
45e5d0e473Sopenharmony_ci    void EncodeSubmitMsg(
46e5d0e473Sopenharmony_ci        std::string desAddr, std::string scAddr, std::string text, bool force7Bit, bool statusReport) const;
47e5d0e473Sopenharmony_ci
48e5d0e473Sopenharmony_ci    std::string UnicodeToString(uint8_t *s, int len) const;
49e5d0e473Sopenharmony_ci
50e5d0e473Sopenharmony_ci    void PrintAddr(TransportAddr &addr, std::string s = "    ") const;
51e5d0e473Sopenharmony_ci    void PrintSubAddr(TransportSubAddr &addr, std::string s = "    ") const;
52e5d0e473Sopenharmony_ci    void PrintSmsTeleSvcAddr(SmsTeleSvcAddr &addr, std::string s = "        ") const;
53e5d0e473Sopenharmony_ci    void PrintHeader(const SmsUDH &header, std::string s = "    ") const;
54e5d0e473Sopenharmony_ci    void PrintTimeAbs(SmsTimeAbs &time, std::string s = "        ") const;
55e5d0e473Sopenharmony_ci    void PrintEncodeType(SmsEncodingType encodeType, std::string s = "    ") const;
56e5d0e473Sopenharmony_ci    void PrintUserData(SmsTeleSvcUserData &userData, std::string s = "        ") const;
57e5d0e473Sopenharmony_ci    void PrintCmasData(SmsTeleSvcCmasData cmasData, std::string s = "    ") const;
58e5d0e473Sopenharmony_ci    void PrintSmsReplyOption(SmsReplyOption &replyOpt, std::string s = "        ") const;
59e5d0e473Sopenharmony_ci    void PrintSmsValPeriod(SmsValPeriod &valPeriod, std::string s = "        ") const;
60e5d0e473Sopenharmony_ci    void PrintSmsEnhancedVmn(SmsEnhancedVmn &vmn, std::string s = "        ") const;
61e5d0e473Sopenharmony_ci    void PrintTeleserviceDeliver(TeleserviceDeliver &deliver, bool isCMAS, std::string s = "    ") const;
62e5d0e473Sopenharmony_ci    void PrintTeleserviceSubmit(TeleserviceSubmit submit, std::string s = "    ") const;
63e5d0e473Sopenharmony_ci    void PrintTeleserviceDeliverAck(TeleserviceDeliverAck deliveryAck, std::string s = "    ") const;
64e5d0e473Sopenharmony_ci    void PrintTelesvc(CdmaTeleserviceMsg &telesvcMsg, bool isCMAS = false, std::string s = "    ") const;
65e5d0e473Sopenharmony_ci    void PrintMsg(CdmaTransportMsg &msg) const;
66e5d0e473Sopenharmony_ci};
67e5d0e473Sopenharmony_ci
68e5d0e473Sopenharmony_ci} // namespace Telephony
69e5d0e473Sopenharmony_ci} // namespace OHOS
70e5d0e473Sopenharmony_ci#endif