• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 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 #ifdef NOTIFICATION_SMART_REMINDER_SUPPORTED
16 #include "gtest/gtest.h"
17 #define private public
18 #include "reminder_swing_decision_center.h"
19 #include "notification_preferences.h"
20 #include "smart_reminder_center.h"
21 #include "reminder_affected.h"
22 #undef private
23 #include "mock_swing_callback_stub.h"
24 
25 using namespace testing::ext;
26 namespace OHOS {
27 namespace Notification {
28 
29 class ReminderSwingDecisionCenterTest : public testing::Test {
30 public:
ReminderSwingDecisionCenterTest()31     ReminderSwingDecisionCenterTest()
32     {}
~ReminderSwingDecisionCenterTest()33     ~ReminderSwingDecisionCenterTest()
34     {}
SetUpTestCas(void)35     static void SetUpTestCas(void) {};
TearDownTestCase(void)36     static void TearDownTestCase(void) {};
37     void SetUp();
TearDown()38     void TearDown() {};
39 public:
40     ReminderSwingDecisionCenter reminderSwingDecisionCenter_;
41 };
42 
SetUp(void)43 void ReminderSwingDecisionCenterTest::SetUp(void)
44 {
45     reminderSwingDecisionCenter_ = ReminderSwingDecisionCenter::GetInstance();
46 }
47 
48 /**
49  * @tc.name: RegisterSwingCallback_00001
50  * @tc.desc: Test RegisterSwingCallback
51  * @tc.type: FUNC
52  */
53 HWTEST_F(ReminderSwingDecisionCenterTest, RegisterSwingCallback_00001, Function | SmallTest | Level1)
54 {
55     sptr<IRemoteObject> swingCallback = nullptr;
56     auto ret = reminderSwingDecisionCenter_.RegisterSwingCallback(swingCallback);
57     ASSERT_EQ(ret, (int)ERR_INVALID_VALUE);
58 }
59 
60 /**
61  * @tc.name: RegisterSwingCallback_00002
62  * @tc.desc: Test RegisterSwingCallback
63  * @tc.type: FUNC
64  */
65 HWTEST_F(ReminderSwingDecisionCenterTest, RegisterSwingCallback_00002, Function | SmallTest | Level1)
66 {
67     auto swingCallbackProxy = new (std::nothrow)MockSwingCallBackStub();
68     EXPECT_NE(swingCallbackProxy, nullptr);
69     sptr<IRemoteObject> swingCallback = swingCallbackProxy->AsObject();
70     int ret = reminderSwingDecisionCenter_.RegisterSwingCallback(swingCallback);
71     ASSERT_EQ(ret, (int)ERR_OK);
72 }
73 
74 HWTEST_F(ReminderSwingDecisionCenterTest, NormalResetSwingCallbackProxyTest, Function | SmallTest | Level1)
75 {
76     // Arrange
77     reminderSwingDecisionCenter_.swingCallback_ = new (std::nothrow)MockSwingCallBackStub();
78     reminderSwingDecisionCenter_.swingRecipient_ = new (std::nothrow)SwingCallbackRecipient();
79 
80     // Act
81     reminderSwingDecisionCenter_.ResetSwingCallbackProxy();
82 
83     // Assert
84     EXPECT_EQ(reminderSwingDecisionCenter_.swingCallback_, nullptr);
85     EXPECT_NE(reminderSwingDecisionCenter_.swingRecipient_, nullptr);
86 }
87 
88 // 测试ResetSwingCallbackProxy方法 - swingCallback_为nullptr
89 HWTEST_F(ReminderSwingDecisionCenterTest, NullSwingCallbackResetSwingCallbackProxyTest, Function | SmallTest | Level1)
90 {
91     // Arrange
92     reminderSwingDecisionCenter_.swingCallback_ = nullptr;
93     reminderSwingDecisionCenter_.swingRecipient_ = new (std::nothrow)SwingCallbackRecipient();
94 
95     // Act
96     reminderSwingDecisionCenter_.ResetSwingCallbackProxy();
97 
98     // Assert
99     EXPECT_EQ(reminderSwingDecisionCenter_.swingCallback_, nullptr);
100     EXPECT_NE(reminderSwingDecisionCenter_.swingRecipient_, nullptr);
101 }
102 
103 // 测试ResetSwingCallbackProxy方法 - swingRecipient_为nullptr
104 HWTEST_F(ReminderSwingDecisionCenterTest, NullSwingRecipientResetSwingCallbackProxyTest, Function | SmallTest | Level1)
105 {
106     // Arrange
107     reminderSwingDecisionCenter_.swingCallback_ = new (std::nothrow)MockSwingCallBackStub();
108     reminderSwingDecisionCenter_.swingRecipient_ = nullptr;
109 
110     // Act
111     reminderSwingDecisionCenter_.ResetSwingCallbackProxy();
112 
113     // Assert
114     EXPECT_EQ(reminderSwingDecisionCenter_.swingCallback_, nullptr);
115     EXPECT_EQ(reminderSwingDecisionCenter_.swingRecipient_, nullptr);
116 }
117 
118 // 测试ResetSwingCallbackProxy方法 - 所有指针都为nullptr
119 HWTEST_F(ReminderSwingDecisionCenterTest, AllNullResetSwingCallbackProxyTest, Function | SmallTest | Level1)
120 {
121     // Arrange
122     reminderSwingDecisionCenter_.swingCallback_ = nullptr;
123     reminderSwingDecisionCenter_.swingRecipient_ = nullptr;
124 
125     // Act
126     reminderSwingDecisionCenter_.ResetSwingCallbackProxy();
127 
128     // Assert
129     EXPECT_EQ(reminderSwingDecisionCenter_.swingCallback_, nullptr);
130     EXPECT_EQ(reminderSwingDecisionCenter_.swingRecipient_, nullptr);
131 }
132 }   //namespace Notification
133 }   //namespace OHOS
134 #endif