• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 "audio_ctrl_channel_test.h"
17 #include <iostream>
18 #include "daudio_log.h"
19 using namespace testing::ext;
20 
21 namespace OHOS {
22 namespace DistributedHardware {
SetUpTestCase(void)23 void AudioCtrlChannelTest::SetUpTestCase(void) {}
24 
TearDownTestCase(void)25 void AudioCtrlChannelTest::TearDownTestCase(void) {}
26 
SetUp(void)27 void AudioCtrlChannelTest::SetUp(void)
28 {
29     std::string peerDevId = "peerDevId";
30     ctrlChannel_ = std::make_shared<AudioCtrlChannel>(peerDevId);
31 }
32 
TearDown(void)33 void AudioCtrlChannelTest::TearDown(void)
34 {
35     ctrlChannel_ = nullptr;
36 }
37 
38 /**
39  * @tc.name: CreateSession_001
40  * @tc.desc: Verify the CreateSession and ReleaseSession function.
41  * @tc.type: FUNC
42  * @tc.require: AR000H0E5U
43  */
44 HWTEST_F(AudioCtrlChannelTest, CreateSession_001, TestSize.Level1)
45 {
46     std::shared_ptr<IAudioChannelListener> listener = nullptr;
47     EXPECT_NE(DH_SUCCESS, ctrlChannel_->CreateSession(listener, CTRL_SESSION_NAME));
48     EXPECT_EQ(DH_SUCCESS, ctrlChannel_->ReleaseSession());
49     listener = std::make_shared<MockIAudioChannelListener>();
50     EXPECT_NE(DH_SUCCESS, ctrlChannel_->CreateSession(listener, CTRL_SESSION_NAME));
51     EXPECT_EQ(DH_SUCCESS, ctrlChannel_->ReleaseSession());
52 }
53 
54 /**
55  * @tc.name: OpenSession_002
56  * @tc.desc: Verify the OpenSession function.
57  * @tc.type: FUNC
58  * @tc.require: AR000H0E5U
59  */
60 HWTEST_F(AudioCtrlChannelTest, OpenSession_002, TestSize.Level1)
61 {
62     std::shared_ptr<IAudioChannelListener> listener = nullptr;
63     ctrlChannel_->channelListener_ = listener;
64     int32_t sessionId = 0;
65     int32_t result = 0;
66 
67     ctrlChannel_->OnSessionOpened(sessionId, result);
68 
69     EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, ctrlChannel_->OpenSession());
70     EXPECT_EQ(DH_SUCCESS, ctrlChannel_->CloseSession());
71     ctrlChannel_->sessionId_ = 1;
72     EXPECT_EQ(DH_SUCCESS, ctrlChannel_->CloseSession());
73 }
74 
75 /**
76  * @tc.name: OpenSession_002
77  * @tc.desc: Verify the OpenSession function.
78  * @tc.type: FUNC
79  * @tc.require: AR000H0E5U
80  */
81 HWTEST_F(AudioCtrlChannelTest, SendData_002, TestSize.Level1)
82 {
83     std::shared_ptr<IAudioChannelListener> listener = std::make_shared<MockIAudioChannelListener>();
84     ctrlChannel_->channelListener_ = listener;
85     int32_t sessionId = -1;
86     int32_t result = -1;
87 
88     ctrlChannel_->OnSessionOpened(sessionId, result);
89 
90     size_t capacity = 2;
91     std::shared_ptr<AudioData> data = std::make_shared<AudioData>(capacity);
92     EXPECT_EQ(DH_SUCCESS, ctrlChannel_->SendData(data));
93 }
94 
95 /**
96  * @tc.name: SendEvent_001
97  * @tc.desc: Verify the SendEvent function.
98  * @tc.type: FUNC
99  * @tc.require: AR000H0E5U
100  */
101 HWTEST_F(AudioCtrlChannelTest, SendEvent_001, TestSize.Level1)
102 {
103     std::shared_ptr<IAudioChannelListener> listener = std::make_shared<MockIAudioChannelListener>();
104     ctrlChannel_->channelListener_ = listener;
105     int32_t sessionId = 0;
106     int32_t result = 0;
107 
108     ctrlChannel_->OnSessionOpened(sessionId, result);
109 
110     AudioEvent event;
111     EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, ctrlChannel_->SendEvent(event));
112 }
113 
114 /**
115  * @tc.name: OnSessionClosed_001
116  * @tc.desc: Verify the OnSessionClosed function.
117  * @tc.type: FUNC
118  * @tc.require: AR000H0E5U
119  */
120 HWTEST_F(AudioCtrlChannelTest, OnSessionClosed_001, TestSize.Level1)
121 {
122     std::shared_ptr<IAudioChannelListener> listener = nullptr;
123     ctrlChannel_->channelListener_ = listener;
124     int32_t sessionId = 0;
125 
126     ctrlChannel_->OnSessionClosed(sessionId);
127     ctrlChannel_->sessionId_ = 1;
128     ctrlChannel_->OnSessionClosed(sessionId);
129     listener = std::make_shared<MockIAudioChannelListener>();
130     ctrlChannel_->channelListener_ = listener;
131     ctrlChannel_->OnSessionClosed(sessionId);
132     AudioEvent event;
133     EXPECT_EQ(ERR_DH_AUDIO_TRANS_ERROR, ctrlChannel_->SendEvent(event));
134 }
135 
136 /**
137  * @tc.name: SendMsg_001
138  * @tc.desc: Verify the SendMsg function.
139  * @tc.type: FUNC
140  * @tc.require: AR000H0E5U
141  */
142 HWTEST_F(AudioCtrlChannelTest, SendMsg_001, TestSize.Level1)
143 {
144     int32_t sessionId = 1;
145     int32_t dataLen = 3;
146     uint8_t *data = new uint8_t[dataLen];
147     ctrlChannel_->OnBytesReceived(sessionId, data, dataLen);
148     std::shared_ptr<IAudioChannelListener> listener = std::make_shared<MockIAudioChannelListener>();
149     ctrlChannel_->channelListener_ = listener;
150     ctrlChannel_->OnBytesReceived(sessionId, data, dataLen);
151     delete [] data;
152     data = nullptr;
153     sessionId = 0;
154     dataLen = 0;
155     ctrlChannel_->OnBytesReceived(sessionId, data, dataLen);
156     listener = nullptr;
157     ctrlChannel_->channelListener_ = listener;
158     ctrlChannel_->OnBytesReceived(sessionId, data, dataLen);
159 
160     StreamData *datas;
161     StreamData *ext;
162     StreamFrameInfo *streamFrameInfo;
163     ctrlChannel_->OnStreamReceived(sessionId, datas, ext, streamFrameInfo);
164 
165     string message = "sendMsg";
166     EXPECT_NE(ERR_DH_AUDIO_CTRL_CHANNEL_SEND_MSG_FAIL, ctrlChannel_->SendMsg(message));
167 }
168 
169 /**
170  * @tc.name: from_audioEventJson_001
171  * @tc.desc: Verify the from_audioEventJson function.
172  * @tc.type: FUNC
173  * @tc.require: AR000H0E5U
174  */
175 HWTEST_F(AudioCtrlChannelTest, from_audioEventJson_001, TestSize.Level1)
176 {
177     AudioEvent event;
178     json j;
179     EXPECT_NE(DH_SUCCESS, from_audioEventJson(j, event));
180 }
181 } // namespace DistributedHardware
182 } // namespace OHOS
183