1 /*
2  * Copyright (C) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "satellite_sms_callback.h"
16 #include "sms_common.h"
17 #include "telephony_errors.h"
18 #include "gtest/gtest.h"
19 #define private public
20 #define protected public
21 #include "mms_receive_manager.h"
22 #include "satellite_sms_client.h"
23 #include "mms_send_manager.h"
24 #undef private
25 #undef protected
26 
27 namespace OHOS {
28 namespace Telephony {
29 using namespace testing::ext;
30 
31 class MmsReceiveManagerTest : public testing::Test {
32 public:
33     static void SetUpTestCase();
34     static void TearDownTestCase();
35     void SetUp();
36     void TearDown();
37 };
SetUpTestCase()38 void MmsReceiveManagerTest::SetUpTestCase() {}
TearDownTestCase()39 void MmsReceiveManagerTest::TearDownTestCase() {}
SetUp()40 void MmsReceiveManagerTest::SetUp() {}
TearDown()41 void MmsReceiveManagerTest::TearDown() {}
42 
43 /**
44  * @tc.number   MmsReceiveManagerTest_001
45  * @tc.name     MmsReceiveManagerTest_001
46  * @tc.desc     Function test
47  */
HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_001, Function | MediumTest | Level1)48 HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_001, Function | MediumTest | Level1)
49 {
50     MmsReceiveManager recvMgr(1);
51     std::u16string mmsc = u"mmsc";
52     std::u16string data;
53     std::u16string ua = u"ua";
54     std::u16string uaprof = u"uaprof";
55     recvMgr.Init();
56     EXPECT_NE(recvMgr.DownloadMms(mmsc, data, ua, uaprof), TELEPHONY_ERR_SUCCESS);
57 }
58 
59 /**
60  * @tc.number   MmsReceiveManagerTest_002
61  * @tc.name     MmsReceiveManagerTest_001
62  * @tc.desc     Function test
63  */
HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_002, Function | MediumTest | Level1)64 HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_002, Function | MediumTest | Level1)
65 {
66     MmsReceiveManager recvMgr(1);
67     std::u16string mmsc = u"mmsc";
68     std::u16string data;
69     std::u16string ua = u"ua";
70     std::u16string uaprof = u"uaprof";
71     recvMgr.Init();
72     recvMgr.mmsReceiver_ = nullptr;
73     EXPECT_EQ(recvMgr.DownloadMms(mmsc, data, ua, uaprof), TELEPHONY_ERR_LOCAL_PTR_NULL);
74 }
75 
76 /**
77  * @tc.number   SatelliteSmsClient_001
78  * @tc.name     SatelliteSmsClient_001
79  * @tc.desc     Function test
80  */
HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_001, Function | MediumTest | Level1)81 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_001, Function | MediumTest | Level1)
82 {
83     auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
84     EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
85     satelliteSmsClient.RemoveDeathRecipient(nullptr, true);
86     satelliteSmsClient.RemoveDeathRecipient(nullptr, false);
87 
88     int32_t slotId = 1;
89     EXPECT_EQ(TELEPHONY_ERR_LOCAL_PTR_NULL, satelliteSmsClient.AddSendHandler(slotId, nullptr));
90     const std::shared_ptr<TelEventHandler> sender = std::make_shared<MmsSendManager>(slotId);
91     EXPECT_EQ(TELEPHONY_SUCCESS, satelliteSmsClient.AddSendHandler(slotId, sender));
92 }
93 /**
94  * @tc.number   SatelliteSmsClient_002
95  * @tc.name     SatelliteSmsClient_002
96  * @tc.desc     Function test
97  */
HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_002, Function | MediumTest | Level1)98 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_002, Function | MediumTest | Level1)
99 {
100     auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
101     EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
102 
103     int32_t slotId = 1;
104     EXPECT_EQ(TELEPHONY_ERR_LOCAL_PTR_NULL, satelliteSmsClient.AddReceiveHandler(slotId, nullptr));
105     const std::shared_ptr<TelEventHandler> receiver = std::make_shared<MmsReceiveManager>(slotId);
106     EXPECT_EQ(TELEPHONY_SUCCESS, satelliteSmsClient.AddReceiveHandler(slotId, receiver));
107 }
108 
109 /**
110  * @tc.number   SatelliteSmsClient_003
111  * @tc.name     SatelliteSmsClient_003
112  * @tc.desc     Function test
113  */
HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_003, Function | MediumTest | Level1)114 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_003, Function | MediumTest | Level1)
115 {
116     auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
117     EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
118     int32_t slotId = 1;
119     satelliteSmsClient.senderMap_.clear();
120     satelliteSmsClient.receiverMap_.clear();
121     satelliteSmsClient.senderMap_[slotId] = nullptr;
122     ASSERT_EQ(satelliteSmsClient.senderMap_.size(), 1);
123     satelliteSmsClient.ServiceOn();
124     satelliteSmsClient.senderMap_.clear();
125 
126     satelliteSmsClient.receiverMap_[slotId] = nullptr;
127     satelliteSmsClient.ServiceOn();
128     satelliteSmsClient.receiverMap_.clear();
129 }
130 }
131 }
132