• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 
16 #include "publisher_item_test.h"
17 
18 #include "publisher.h"
19 
20 using namespace testing::ext;
21 using namespace std;
22 namespace OHOS {
23 namespace DistributedHardware {
24 namespace {
25     constexpr uint32_t MESSAGE_LEN = 40 * 1024 * 1024 + 10;
26 }
27 
SetUpTestCase(void)28 void PublisherItemTest::SetUpTestCase(void) {}
29 
TearDownTestCase(void)30 void PublisherItemTest::TearDownTestCase(void) {}
31 
SetUp()32 void PublisherItemTest::SetUp() {}
33 
TearDown()34 void PublisherItemTest::TearDown() {}
35 
36 /**
37  * @tc.name: AddListener_001
38  * @tc.desc: Verify the AddListener ToJson function.
39  * @tc.type: FUNC
40  * @tc.require: AR000GHSCV
41  */
42 HWTEST_F(PublisherItemTest, AddListener_001, TestSize.Level1)
43 {
44     PublisherItem item(DHTopic::TOPIC_MIN);
45     sptr<IPublisherListener> listener = nullptr;
46     item.AddListener(listener);
47     EXPECT_EQ(true, item.listeners_.empty());
48 }
49 
50 /**
51  * @tc.name: AddListener_002
52  * @tc.desc: Verify the AddListener ToJson function.
53  * @tc.type: FUNC
54  * @tc.require: AR000GHSCV
55  */
56 HWTEST_F(PublisherItemTest, AddListener_002, TestSize.Level1)
57 {
58     PublisherItem item(DHTopic::TOPIC_MIN);
59     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
60     ASSERT_TRUE(listener != nullptr);
61     item.AddListener(listener);
62     EXPECT_EQ(false, item.listeners_.empty());
63 }
64 
65 /**
66  * @tc.name: RemoveListener_001
67  * @tc.desc: Verify the RemoveListener ToJson function.
68  * @tc.type: FUNC
69  * @tc.require: AR000GHSCV
70  */
71 HWTEST_F(PublisherItemTest, RemoveListener_001, TestSize.Level1)
72 {
73     PublisherItem item(DHTopic::TOPIC_MIN);
74     sptr<IPublisherListener> listener = nullptr;
75     item.RemoveListener(listener);
76     EXPECT_EQ(true, item.listeners_.empty());
77 
78     sptr<IPublisherListener> listener1(new (std::nothrow) MockIPublisherListener());
79     ASSERT_TRUE(listener1 != nullptr);
80     item.AddListener(listener1);
81     item.RemoveListener(listener1);
82     EXPECT_EQ(true, item.listeners_.empty());
83 }
84 
85 /**
86  * @tc.name: PublishMessage_001
87  * @tc.desc: Verify the PublishMessage ToJson function.
88  * @tc.type: FUNC
89  * @tc.require: AR000GHSCV
90  */
91 HWTEST_F(PublisherItemTest, PublishMessage_001, TestSize.Level1)
92 {
93     PublisherItem item(DHTopic::TOPIC_MIN);
94     std::string message = "";
95     item.PublishMessage(message);
96     EXPECT_EQ(true, item.listeners_.empty());
97 
98     std::string msg(MESSAGE_LEN, 'a');
99     item.PublishMessage(msg);
100     EXPECT_EQ(true, item.listeners_.empty());
101 }
102 
103 /**
104  * @tc.name: PublishMessage_002
105  * @tc.desc: Verify the PublishMessage ToJson function.
106  * @tc.type: FUNC
107  * @tc.require: AR000GHSCV
108  */
109 HWTEST_F(PublisherItemTest, PublishMessage_002, TestSize.Level1)
110 {
111     PublisherItem item(DHTopic::TOPIC_MIN);
112     std::string message = "message";
113     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
114     ASSERT_TRUE(listener != nullptr);
115     item.AddListener(listener);
116     item.PublishMessage(message);
117     EXPECT_EQ(false, item.listeners_.empty());
118 }
119 
120 HWTEST_F(PublisherItemTest, RegisterListener_001, TestSize.Level1)
121 {
122     DHTopic topic = DHTopic::TOPIC_MIN;
123     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
124     ASSERT_TRUE(listener != nullptr);
125     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().RegisterListener(topic, listener));
126 }
127 
128 HWTEST_F(PublisherItemTest, RegisterListener_002, TestSize.Level1)
129 {
130     DHTopic topic = DHTopic::TOPIC_LOW_LATENCY;
131     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
132     ASSERT_TRUE(listener != nullptr);
133     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().RegisterListener(topic, listener));
134 }
135 
136 HWTEST_F(PublisherItemTest, UnregisterListener_001, TestSize.Level1)
137 {
138     DHTopic topic = DHTopic::TOPIC_MIN;
139     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
140     ASSERT_TRUE(listener != nullptr);
141     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().UnregisterListener(topic, listener));
142 }
143 
144 HWTEST_F(PublisherItemTest, UnregisterListener_002, TestSize.Level1)
145 {
146     DHTopic topic = DHTopic::TOPIC_LOW_LATENCY;
147     sptr<IPublisherListener> listener(new (std::nothrow) MockIPublisherListener());
148     ASSERT_TRUE(listener != nullptr);
149     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().UnregisterListener(topic, listener));
150 }
151 
152 HWTEST_F(PublisherItemTest, Publisher_PublishMessage_001, TestSize.Level1)
153 {
154     DHTopic topic = DHTopic::TOPIC_MIN;
155     std::string message = "message_test";
156     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().PublishMessage(topic, message));
157 }
158 
159 HWTEST_F(PublisherItemTest, Publisher_PublishMessage_002, TestSize.Level1)
160 {
161     DHTopic topic = DHTopic::TOPIC_LOW_LATENCY;
162     std::string message = "message_test";
163     EXPECT_NO_FATAL_FAILURE(Publisher::GetInstance().PublishMessage(topic, message));
164 }
165 } // namespace DistributedHardware
166 } // namespace OHOS
167