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() {}
39
40 constexpr uint32_t EVENT_RELEASE_DATA_SHARE_HELPER = 10000;
TearDownTestCase()41 void MmsReceiveManagerTest::TearDownTestCase()
42 {
43 DelayedSingleton<SmsPersistHelper>::GetInstance()->RemoveEvent(EVENT_RELEASE_DATA_SHARE_HELPER);
44 }
SetUp()45 void MmsReceiveManagerTest::SetUp() {}
TearDown()46 void MmsReceiveManagerTest::TearDown() {}
47
48 /**
49 * @tc.number MmsReceiveManagerTest_001
50 * @tc.name MmsReceiveManagerTest_001
51 * @tc.desc Function test
52 */
53 HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_001, Function | MediumTest | Level1)
54 {
55 MmsReceiveManager recvMgr(1);
56 std::u16string mmsc = u"mmsc";
57 std::u16string data;
58 std::u16string ua = u"ua";
59 std::u16string uaprof = u"uaprof";
60 recvMgr.Init();
61 EXPECT_NE(recvMgr.DownloadMms(mmsc, data, ua, uaprof), TELEPHONY_ERR_SUCCESS);
62 }
63
64 /**
65 * @tc.number MmsReceiveManagerTest_002
66 * @tc.name MmsReceiveManagerTest_001
67 * @tc.desc Function test
68 */
69 HWTEST_F(MmsReceiveManagerTest, MmsReceiveManagerTest_002, Function | MediumTest | Level1)
70 {
71 MmsReceiveManager recvMgr(1);
72 std::u16string mmsc = u"mmsc";
73 std::u16string data;
74 std::u16string ua = u"ua";
75 std::u16string uaprof = u"uaprof";
76 recvMgr.Init();
77 recvMgr.mmsReceiver_ = nullptr;
78 EXPECT_EQ(recvMgr.DownloadMms(mmsc, data, ua, uaprof), TELEPHONY_ERR_LOCAL_PTR_NULL);
79 }
80
81 /**
82 * @tc.number SatelliteSmsClient_001
83 * @tc.name SatelliteSmsClient_001
84 * @tc.desc Function test
85 */
86 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_001, Function | MediumTest | Level1)
87 {
88 auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
89 EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
90 satelliteSmsClient.RemoveDeathRecipient(nullptr, true);
91 satelliteSmsClient.RemoveDeathRecipient(nullptr, false);
92
93 int32_t slotId = 1;
94 EXPECT_EQ(TELEPHONY_ERR_LOCAL_PTR_NULL, satelliteSmsClient.AddSendHandler(slotId, nullptr));
95 const std::shared_ptr<TelEventHandler> sender = std::make_shared<MmsSendManager>(slotId);
96 EXPECT_EQ(TELEPHONY_SUCCESS, satelliteSmsClient.AddSendHandler(slotId, sender));
97 }
98 /**
99 * @tc.number SatelliteSmsClient_002
100 * @tc.name SatelliteSmsClient_002
101 * @tc.desc Function test
102 */
103 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_002, Function | MediumTest | Level1)
104 {
105 auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
106 EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
107
108 int32_t slotId = 1;
109 EXPECT_EQ(TELEPHONY_ERR_LOCAL_PTR_NULL, satelliteSmsClient.AddReceiveHandler(slotId, nullptr));
110 const std::shared_ptr<TelEventHandler> receiver = std::make_shared<MmsReceiveManager>(slotId);
111 EXPECT_EQ(TELEPHONY_SUCCESS, satelliteSmsClient.AddReceiveHandler(slotId, receiver));
112 }
113
114 /**
115 * @tc.number SatelliteSmsClient_003
116 * @tc.name SatelliteSmsClient_003
117 * @tc.desc Function test
118 */
119 HWTEST_F(MmsReceiveManagerTest, SatelliteSmsClient_003, Function | MediumTest | Level1)
120 {
121 auto &satelliteSmsClient = SatelliteSmsClient::GetInstance();
122 EXPECT_EQ(nullptr, satelliteSmsClient.GetProxy());
123 int32_t slotId = 1;
124 satelliteSmsClient.senderMap_.clear();
125 satelliteSmsClient.receiverMap_.clear();
126 satelliteSmsClient.senderMap_[slotId] = nullptr;
127 ASSERT_EQ(satelliteSmsClient.senderMap_.size(), 1);
128 satelliteSmsClient.ServiceOn();
129 satelliteSmsClient.senderMap_.clear();
130
131 satelliteSmsClient.receiverMap_[slotId] = nullptr;
132 satelliteSmsClient.ServiceOn();
133 satelliteSmsClient.receiverMap_.clear();
134 }
135 }
136 }
137