• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 "audio_haptic_player_impl_unit_test.h"
17 
18 namespace OHOS {
19 namespace Media {
20 using namespace testing::ext;
21 
22 const int32_t NUM2 = 2;
23 const float NUM_1 = -1.0f;
24 const float NUM_2 = 2.0f;
25 const float NUM_3 = 0.5f;
26 const float NUM_4 = 200.0f;
27 
SetUpTestCase(void)28 void AudioHapticPlayerImplUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)29 void AudioHapticPlayerImplUnitTest::TearDownTestCase(void) {}
SetUp(void)30 void AudioHapticPlayerImplUnitTest::SetUp(void) {}
TearDown(void)31 void AudioHapticPlayerImplUnitTest::TearDown(void) {}
32 
33 /**
34  * @tc.name  : Test AudioHapticPlayerImpl API
35  * @tc.number: AudioHapticPlayerImpl_001
36  * @tc.desc  : Test AudioHapticSound::CreateAudioHapticSound()
37  */
38 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_001, TestSize.Level1)
39 {
40     AudioSource audioSource = {.audioUri = "123"};
41     bool muteAudio = true;
42     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
43     auto audioHapticSound = std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
44 
45     EXPECT_NE(audioHapticSound, nullptr);
46 
47     AudioLatencyMode latencyMode = static_cast<AudioLatencyMode>(NUM2);
48     bool parallelPlayFlag = true;
49 
50     auto ret = audioHapticSound->CreateAudioHapticSound(latencyMode, audioSource, muteAudio,
51         streamUsage, parallelPlayFlag);
52     EXPECT_EQ(ret, nullptr);
53 }
54 
55 /**
56  * @tc.name  : Test AudioHapticPlayerImpl API
57  * @tc.number: AudioHapticPlayerImpl_002
58  * @tc.desc  : Test AudioHapticSound::CreateAudioHapticSound()
59  */
60 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_002, TestSize.Level1)
61 {
62     AudioSource audioSource = {.audioUri = "123"};
63     bool muteAudio = true;
64     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
65     auto audioHapticSound = std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
66 
67     EXPECT_NE(audioHapticSound, nullptr);
68 
69     AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
70     bool parallelPlayFlag = true;
71 
72     auto ret = audioHapticSound->CreateAudioHapticSound(latencyMode, audioSource, muteAudio,
73         streamUsage, parallelPlayFlag);
74     EXPECT_NE(ret, nullptr);
75 }
76 
77 /**
78  * @tc.name  : Test AudioHapticPlayerImpl API
79  * @tc.number: AudioHapticPlayerImpl_003
80  * @tc.desc  : Test AudioHapticSound::CreateAudioHapticSound()
81  */
82 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_003, TestSize.Level1)
83 {
84     AudioSource audioSource = {.audioUri = "123"};
85     bool muteAudio = true;
86     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
87     auto audioHapticSound = std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
88 
89     EXPECT_NE(audioHapticSound, nullptr);
90 
91     AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_FAST;
92     bool parallelPlayFlag = true;
93 
94     auto ret = audioHapticSound->CreateAudioHapticSound(latencyMode, audioSource, muteAudio,
95         streamUsage, parallelPlayFlag);
96     EXPECT_NE(ret, nullptr);
97 }
98 
99 /**
100  * @tc.name  : Test AudioHapticPlayerImpl API
101  * @tc.number: AudioHapticPlayerImpl_004
102  * @tc.desc  : Test AudioHapticPlayerImpl::~AudioHapticPlayerImpl()
103  */
104 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_004, TestSize.Level1)
105 {
106     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
107 
108     EXPECT_NE(audioHapticPlayerImpl, nullptr);
109     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RELEASED;
110 }
111 
112 /**
113  * @tc.name  : Test AudioHapticPlayerImpl API
114  * @tc.number: AudioHapticPlayerImpl_005
115  * @tc.desc  : Test AudioHapticPlayerImpl::~AudioHapticPlayerImpl()
116  */
117 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_005, TestSize.Level1)
118 {
119     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
120 
121     EXPECT_NE(audioHapticPlayerImpl, nullptr);
122     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
123 }
124 
125 /**
126  * @tc.name  : Test AudioHapticPlayerImpl API
127  * @tc.number: AudioHapticPlayerImpl_006
128  * @tc.desc  : Test AudioHapticPlayerImpl::IsMuted()
129  */
130 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_006, TestSize.Level1)
131 {
132     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
133 
134     EXPECT_NE(audioHapticPlayerImpl, nullptr);
135 
136     AudioHapticType audioHapticType = AudioHapticType::AUDIO_HAPTIC_TYPE_AUDIO;
137     audioHapticPlayerImpl->muteAudio_ = true;
138 
139     auto ret = audioHapticPlayerImpl->IsMuted(audioHapticType);
140     EXPECT_EQ(ret, true);
141 }
142 
143 /**
144  * @tc.name  : Test AudioHapticPlayerImpl API
145  * @tc.number: AudioHapticPlayerImpl_007
146  * @tc.desc  : Test AudioHapticPlayerImpl::IsMuted()
147  */
148 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_007, TestSize.Level1)
149 {
150     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
151 
152     EXPECT_NE(audioHapticPlayerImpl, nullptr);
153 
154     AudioHapticType audioHapticType = AudioHapticType::AUDIO_HAPTIC_TYPE_HAPTIC;
155     audioHapticPlayerImpl->muteHaptic_ = true;
156 
157     auto ret = audioHapticPlayerImpl->IsMuted(audioHapticType);
158     EXPECT_EQ(ret, true);
159 }
160 
161 /**
162  * @tc.name  : Test AudioHapticPlayerImpl API
163  * @tc.number: AudioHapticPlayerImpl_008
164  * @tc.desc  : Test AudioHapticPlayerImpl::IsMuted()
165  */
166 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_008, TestSize.Level1)
167 {
168     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
169 
170     EXPECT_NE(audioHapticPlayerImpl, nullptr);
171 
172     AudioHapticType audioHapticType = static_cast<AudioHapticType>(NUM2);
173     audioHapticPlayerImpl->muteHaptic_ = true;
174 
175     auto ret = audioHapticPlayerImpl->IsMuted(audioHapticType);
176     EXPECT_EQ(ret, false);
177 }
178 
179 /**
180  * @tc.name  : Test AudioHapticPlayerImpl API
181  * @tc.number: AudioHapticPlayerImpl_009
182  * @tc.desc  : Test AudioHapticPlayerImpl::Start()
183  */
184 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_009, TestSize.Level1)
185 {
186     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
187 
188     EXPECT_NE(audioHapticPlayerImpl, nullptr);
189 
190     audioHapticPlayerImpl->vibrateThread_ = std::make_shared<std::thread>();
191     EXPECT_NE(audioHapticPlayerImpl->vibrateThread_, nullptr);
192 
193     auto ret = audioHapticPlayerImpl->Start();
194     EXPECT_NE(ret, MSERR_OK);
195 }
196 
197 /**
198  * @tc.name  : Test AudioHapticPlayerImpl API
199  * @tc.number: AudioHapticPlayerImpl_010
200  * @tc.desc  : Test AudioHapticPlayerImpl::Start()
201  */
202 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_010, TestSize.Level1)
203 {
204     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
205 
206     EXPECT_NE(audioHapticPlayerImpl, nullptr);
207 
208     audioHapticPlayerImpl->vibrateThread_ = nullptr;
209 
210     auto ret = audioHapticPlayerImpl->Start();
211     EXPECT_NE(ret, MSERR_OK);
212 }
213 
214 /**
215  * @tc.name  : Test AudioHapticPlayerImpl API
216  * @tc.number: AudioHapticPlayerImpl_011
217  * @tc.desc  : Test AudioHapticPlayerImpl::ReleaseVibrator()
218  */
219 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_011, TestSize.Level1)
220 {
221     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
222 
223     EXPECT_NE(audioHapticPlayerImpl, nullptr);
224 
225     AudioHapticPlayerImpl audioHapticPlayerImpl2;
226     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
227     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
228 
229     audioHapticPlayerImpl->vibrateThread_ = std::make_shared<std::thread>();
230     EXPECT_NE(audioHapticPlayerImpl->vibrateThread_, nullptr);
231 
232     audioHapticPlayerImpl->ReleaseVibrator();
233 }
234 
235 /**
236  * @tc.name  : Test AudioHapticPlayerImpl API
237  * @tc.number: AudioHapticPlayerImpl_012
238  * @tc.desc  : Test AudioHapticPlayerImpl::ReleaseVibrator()
239  */
240 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_012, TestSize.Level1)
241 {
242     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
243 
244     EXPECT_NE(audioHapticPlayerImpl, nullptr);
245 
246     audioHapticPlayerImpl->audioHapticVibrator_ = nullptr;
247     audioHapticPlayerImpl->vibrateThread_ = nullptr;
248 
249     audioHapticPlayerImpl->ReleaseVibrator();
250 }
251 
252 /**
253  * @tc.name  : Test AudioHapticPlayerImpl API
254  * @tc.number: AudioHapticPlayerImpl_013
255  * @tc.desc  : Test AudioHapticPlayerImpl::ReleaseSound()
256  */
257 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_013, TestSize.Level1)
258 {
259     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
260 
261     EXPECT_NE(audioHapticPlayerImpl, nullptr);
262 
263     AudioSource audioSource = {.audioUri = "123"};
264     bool muteAudio = true;
265     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
266     auto audioHapticSoundNormalImpl =
267         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
268 
269     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
270 
271     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
272     audioHapticPlayerImpl->ReleaseSound();
273 }
274 
275 /**
276  * @tc.name  : Test AudioHapticPlayerImpl API
277  * @tc.number: AudioHapticPlayerImpl_014
278  * @tc.desc  : Test AudioHapticPlayerImpl::ReleaseSound()
279  */
280 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_014, TestSize.Level1)
281 {
282     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
283 
284     EXPECT_NE(audioHapticPlayerImpl, nullptr);
285 
286     audioHapticPlayerImpl->audioHapticSound_ = nullptr;
287     audioHapticPlayerImpl->ReleaseSound();
288 }
289 
290 /**
291  * @tc.name  : Test AudioHapticPlayerImpl API
292  * @tc.number: AudioHapticPlayerImpl_015
293  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
294  */
295 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_015, TestSize.Level1)
296 {
297     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
298 
299     EXPECT_NE(audioHapticPlayerImpl, nullptr);
300 
301     float volume = NUM_1;
302     auto ret = audioHapticPlayerImpl->SetVolume(volume);
303     EXPECT_EQ(ret, MSERR_INVALID_VAL);
304 }
305 
306 /**
307  * @tc.name  : Test AudioHapticPlayerImpl API
308  * @tc.number: AudioHapticPlayerImpl_016
309  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
310  */
311 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_016, TestSize.Level1)
312 {
313     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
314 
315     EXPECT_NE(audioHapticPlayerImpl, nullptr);
316 
317     float volume = NUM_2;
318     auto ret = audioHapticPlayerImpl->SetVolume(volume);
319     EXPECT_EQ(ret, MSERR_INVALID_VAL);
320 }
321 
322 /**
323  * @tc.name  : Test AudioHapticPlayerImpl API
324  * @tc.number: AudioHapticPlayerImpl_017
325  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
326  */
327 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_017, TestSize.Level1)
328 {
329     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
330 
331     EXPECT_NE(audioHapticPlayerImpl, nullptr);
332 
333     float volume = NUM_3;
334     audioHapticPlayerImpl->audioHapticSound_ = nullptr;
335 
336     auto ret = audioHapticPlayerImpl->SetVolume(volume);
337     EXPECT_EQ(ret, MSERR_OK);
338 }
339 
340 /**
341  * @tc.name  : Test AudioHapticPlayerImpl API
342  * @tc.number: AudioHapticPlayerImpl_018
343  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
344  */
345 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_018, TestSize.Level1)
346 {
347     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
348 
349     EXPECT_NE(audioHapticPlayerImpl, nullptr);
350 
351     float volume = 0.0f;
352 
353     AudioSource audioSource = {.audioUri = "123"};
354     bool muteAudio = true;
355     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
356     auto audioHapticSoundNormalImpl =
357         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
358 
359     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
360 
361     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
362 
363     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
364     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_VOICE_RINGTONE;
365     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RUNNING;
366 
367     auto ret = audioHapticPlayerImpl->SetVolume(volume);
368     EXPECT_EQ(ret, MSERR_OK);
369 }
370 
371 /**
372  * @tc.name  : Test AudioHapticPlayerImpl API
373  * @tc.number: AudioHapticPlayerImpl_019
374  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
375  */
376 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_019, TestSize.Level1)
377 {
378     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
379 
380     EXPECT_NE(audioHapticPlayerImpl, nullptr);
381 
382     float volume = NUM_3;
383 
384     AudioSource audioSource = {.audioUri = "123"};
385     bool muteAudio = true;
386     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
387     auto audioHapticSoundNormalImpl =
388         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
389 
390     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
391 
392     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
393 
394     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
395     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_VOICE_RINGTONE;
396     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RUNNING;
397 
398     auto ret = audioHapticPlayerImpl->SetVolume(volume);
399     EXPECT_EQ(ret, MSERR_OK);
400 }
401 
402 /**
403  * @tc.name  : Test AudioHapticPlayerImpl API
404  * @tc.number: AudioHapticPlayerImpl_020
405  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
406  */
407 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_020, TestSize.Level1)
408 {
409     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
410 
411     EXPECT_NE(audioHapticPlayerImpl, nullptr);
412 
413     float volume = NUM_3;
414 
415     AudioSource audioSource = {.audioUri = "123"};
416     bool muteAudio = true;
417     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
418     auto audioHapticSoundNormalImpl =
419         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
420 
421     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
422 
423     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
424 
425     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
426     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_VOICE_RINGTONE;
427     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
428 
429     auto ret = audioHapticPlayerImpl->SetVolume(volume);
430     EXPECT_EQ(ret, MSERR_OK);
431 }
432 
433 /**
434  * @tc.name  : Test AudioHapticPlayerImpl API
435  * @tc.number: AudioHapticPlayerImpl_021
436  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
437  */
438 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_021, TestSize.Level1)
439 {
440     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
441 
442     EXPECT_NE(audioHapticPlayerImpl, nullptr);
443 
444     float volume = NUM_3;
445 
446     AudioSource audioSource = {.audioUri = "123"};
447     bool muteAudio = true;
448     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
449     auto audioHapticSoundNormalImpl =
450         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
451 
452     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
453 
454     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
455 
456     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
457     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_RINGTONE;
458     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
459 
460     auto ret = audioHapticPlayerImpl->SetVolume(volume);
461     EXPECT_EQ(ret, MSERR_OK);
462 }
463 
464 /**
465  * @tc.name  : Test AudioHapticPlayerImpl API
466  * @tc.number: AudioHapticPlayerImpl_022
467  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
468  */
469 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_022, TestSize.Level1)
470 {
471     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
472 
473     EXPECT_NE(audioHapticPlayerImpl, nullptr);
474 
475     float volume = NUM_3;
476 
477     AudioSource audioSource = {.audioUri = "123"};
478     bool muteAudio = true;
479     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
480     auto audioHapticSoundNormalImpl =
481         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
482 
483     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
484 
485     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
486 
487     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
488     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
489     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
490 
491     auto ret = audioHapticPlayerImpl->SetVolume(volume);
492     EXPECT_EQ(ret, MSERR_OK);
493 }
494 
495 /**
496  * @tc.name  : Test AudioHapticPlayerImpl API
497  * @tc.number: AudioHapticPlayerImpl_023
498  * @tc.desc  : Test AudioHapticPlayerImpl::SetVolume()
499  */
500 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_023, TestSize.Level1)
501 {
502     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
503 
504     EXPECT_NE(audioHapticPlayerImpl, nullptr);
505 
506     float volume = NUM_3;
507 
508     AudioSource audioSource = {.audioUri = "123"};
509     bool muteAudio = true;
510     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
511     auto audioHapticSoundNormalImpl =
512         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
513 
514     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
515 
516     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
517 
518     audioHapticPlayerImpl->latencyMode_ = AudioLatencyMode::AUDIO_LATENCY_MODE_FAST;
519     audioHapticPlayerImpl->streamUsage_ = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
520     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
521 
522     auto ret = audioHapticPlayerImpl->SetVolume(volume);
523     EXPECT_EQ(ret, MSERR_OK);
524 }
525 
526 /**
527  * @tc.name  : Test AudioHapticPlayerImpl API
528  * @tc.number: AudioHapticPlayerImpl_024
529  * @tc.desc  : Test AudioHapticPlayerImpl::SetHapticIntensity()
530  */
531 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_024, TestSize.Level1)
532 {
533     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
534 
535     EXPECT_NE(audioHapticPlayerImpl, nullptr);
536 
537     float intensity = NUM_1;
538     auto ret = audioHapticPlayerImpl->SetHapticIntensity(intensity);
539     EXPECT_EQ(ret, NOT_SUPPORTED_CODE);
540 }
541 
542 /**
543  * @tc.name  : Test AudioHapticPlayerImpl API
544  * @tc.number: AudioHapticPlayerImpl_025
545  * @tc.desc  : Test AudioHapticPlayerImpl::SetHapticIntensity()
546  */
547 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_025, TestSize.Level1)
548 {
549     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
550 
551     EXPECT_NE(audioHapticPlayerImpl, nullptr);
552 
553     float intensity = NUM_2;
554 
555     AudioHapticPlayerImpl audioHapticPlayerImpl2;
556     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
557     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
558 
559     auto ret = audioHapticPlayerImpl->SetHapticIntensity(intensity);
560     EXPECT_NE(ret, MSERR_OK);
561 }
562 
563 /**
564  * @tc.name  : Test AudioHapticPlayerImpl API
565  * @tc.number: AudioHapticPlayerImpl_026
566  * @tc.desc  : Test AudioHapticPlayerImpl::SetHapticIntensity()
567  */
568 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_026, TestSize.Level1)
569 {
570     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
571 
572     EXPECT_NE(audioHapticPlayerImpl, nullptr);
573 
574     AudioHapticPlayerImpl audioHapticPlayerImpl2;
575     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
576     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
577 
578     float intensity = NUM_1;
579     auto ret = audioHapticPlayerImpl->SetHapticIntensity(intensity);
580     EXPECT_NE(ret, MSERR_INVALID_VAL);
581 
582     intensity = NUM_4;
583     ret = audioHapticPlayerImpl->SetHapticIntensity(intensity);
584     EXPECT_NE(ret, MSERR_INVALID_VAL);
585 }
586 
587 /**
588  * @tc.name  : Test AudioHapticPlayerImpl API
589  * @tc.number: AudioHapticPlayerImpl_027
590  * @tc.desc  : Test AudioHapticPlayerImpl::SetLoop()
591  */
592 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_027, TestSize.Level1)
593 {
594     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
595 
596     EXPECT_NE(audioHapticPlayerImpl, nullptr);
597 
598     bool loop = true;
599 
600     AudioSource audioSource = {.audioUri = "123"};
601     bool muteAudio = true;
602     AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
603     auto audioHapticSoundNormalImpl =
604         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, muteAudio, streamUsage);
605 
606     EXPECT_NE(audioHapticSoundNormalImpl, nullptr);
607 
608     audioHapticPlayerImpl->audioHapticSound_ = audioHapticSoundNormalImpl;
609 
610     auto ret = audioHapticPlayerImpl->SetLoop(loop);
611     EXPECT_EQ(ret, MSERR_OK);
612 }
613 
614 /**
615  * @tc.name  : Test AudioHapticPlayerImpl API
616  * @tc.number: AudioHapticPlayerImpl_028
617  * @tc.desc  : Test AudioHapticPlayerImpl::SetLoop()
618  */
619 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_028, TestSize.Level1)
620 {
621     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
622 
623     EXPECT_NE(audioHapticPlayerImpl, nullptr);
624 
625     bool loop = true;
626 
627     audioHapticPlayerImpl->audioHapticSound_ = nullptr;
628 
629     auto ret = audioHapticPlayerImpl->SetLoop(loop);
630     EXPECT_EQ(ret, MSERR_OK);
631 }
632 
633 /**
634  * @tc.name  : Test AudioHapticPlayerImpl API
635  * @tc.number: AudioHapticPlayerImpl_029
636  * @tc.desc  : Test AudioHapticPlayerImpl::SetAudioHapticPlayerCallback()
637  */
638 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_029, TestSize.Level1)
639 {
640     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
641 
642     EXPECT_NE(audioHapticPlayerImpl, nullptr);
643 
644     std::shared_ptr<AudioHapticPlayerCallback> playerCallback = std::make_shared<AudioHapticPlayerCallbackTest>();
645     EXPECT_NE(playerCallback, nullptr);
646 
647     auto ret = audioHapticPlayerImpl->SetAudioHapticPlayerCallback(playerCallback);
648     EXPECT_EQ(ret, MSERR_OK);
649 }
650 
651 /**
652  * @tc.name  : Test AudioHapticPlayerImpl API
653  * @tc.number: AudioHapticPlayerImpl_030
654  * @tc.desc  : Test AudioHapticPlayerImpl::SetAudioHapticPlayerCallback()
655  */
656 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_030, TestSize.Level1)
657 {
658     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
659 
660     EXPECT_NE(audioHapticPlayerImpl, nullptr);
661 
662     std::shared_ptr<AudioHapticPlayerCallback> playerCallback = nullptr;
663 
664     auto ret = audioHapticPlayerImpl->SetAudioHapticPlayerCallback(playerCallback);
665     EXPECT_EQ(ret, MSERR_INVALID_VAL);
666 }
667 
668 /**
669  * @tc.name  : Test AudioHapticPlayerImpl API
670  * @tc.number: AudioHapticPlayerImpl_031
671  * @tc.desc  : Test AudioHapticPlayerImpl::StartVibrate()
672  */
673 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_031, TestSize.Level1)
674 {
675     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
676 
677     EXPECT_NE(audioHapticPlayerImpl, nullptr);
678 
679     audioHapticPlayerImpl->muteHaptic_ = true;
680 
681     auto ret = audioHapticPlayerImpl->StartVibrate();
682     EXPECT_EQ(ret, MSERR_OK);
683 }
684 
685 /**
686  * @tc.name  : Test AudioHapticPlayerImpl API
687  * @tc.number: AudioHapticPlayerImpl_032
688  * @tc.desc  : Test AudioHapticPlayerImpl::StartVibrate()
689  */
690 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_032, TestSize.Level1)
691 {
692     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
693 
694     EXPECT_NE(audioHapticPlayerImpl, nullptr);
695 
696     audioHapticPlayerImpl->muteHaptic_ = false;
697     audioHapticPlayerImpl->isVibrationStopped_ = true;
698     audioHapticPlayerImpl->loop_ = true;
699 
700     auto ret = audioHapticPlayerImpl->StartVibrate();
701     EXPECT_EQ(ret, MSERR_OK);
702 }
703 
704 /**
705  * @tc.name  : Test AudioHapticPlayerImpl API
706  * @tc.number: AudioHapticPlayerImpl_033
707  * @tc.desc  : Test AudioHapticPlayerImpl::StartVibrate()
708  */
709 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_033, TestSize.Level1)
710 {
711     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
712 
713     EXPECT_NE(audioHapticPlayerImpl, nullptr);
714 
715     audioHapticPlayerImpl->muteHaptic_ = false;
716     audioHapticPlayerImpl->isVibrationStopped_ = false;
717     audioHapticPlayerImpl->loop_ = true;
718 
719     auto ret = audioHapticPlayerImpl->StartVibrate();
720     EXPECT_EQ(ret, MSERR_INVALID_OPERATION);
721 }
722 
723 /**
724  * @tc.name  : Test AudioHapticPlayerImpl API
725  * @tc.number: AudioHapticPlayerImpl_034
726  * @tc.desc  : Test AudioHapticPlayerImpl::StartVibrate()
727  */
728 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_034, TestSize.Level1)
729 {
730     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
731 
732     EXPECT_NE(audioHapticPlayerImpl, nullptr);
733 
734     audioHapticPlayerImpl->muteHaptic_ = false;
735     audioHapticPlayerImpl->isVibrationStopped_ = false;
736     audioHapticPlayerImpl->loop_ = false;
737 
738     auto ret = audioHapticPlayerImpl->StartVibrate();
739     EXPECT_EQ(ret, MSERR_INVALID_OPERATION);
740 }
741 
742 /**
743  * @tc.name  : Test AudioHapticPlayerImpl API
744  * @tc.number: AudioHapticPlayerImpl_035
745  * @tc.desc  : Test AudioHapticPlayerImpl::StopVibrate()
746  */
747 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_035, TestSize.Level1)
748 {
749     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
750 
751     EXPECT_NE(audioHapticPlayerImpl, nullptr);
752 
753     AudioHapticPlayerImpl audioHapticPlayerImpl2;
754     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
755     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
756 
757     audioHapticPlayerImpl->vibrateThread_ = std::make_shared<std::thread>();
758     EXPECT_NE(audioHapticPlayerImpl->vibrateThread_, nullptr);
759 
760     audioHapticPlayerImpl->StopVibrate();
761 }
762 
763 /**
764  * @tc.name  : Test AudioHapticPlayerImpl API
765  * @tc.number: AudioHapticPlayerImpl_036
766  * @tc.desc  : Test AudioHapticPlayerImpl::StopVibrate()
767  */
768 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_036, TestSize.Level1)
769 {
770     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
771 
772     EXPECT_NE(audioHapticPlayerImpl, nullptr);
773 
774     audioHapticPlayerImpl->audioHapticVibrator_ = nullptr;
775     audioHapticPlayerImpl->vibrateThread_ = nullptr;
776 
777     audioHapticPlayerImpl->StopVibrate();
778 }
779 
780 /**
781  * @tc.name  : Test AudioHapticPlayerImpl API
782  * @tc.number: AudioHapticPlayerImpl_037
783  * @tc.desc  : Test AudioHapticPlayerImpl::ResetVibrateState()
784  */
785 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_037, TestSize.Level1)
786 {
787     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
788 
789     EXPECT_NE(audioHapticPlayerImpl, nullptr);
790 
791     AudioHapticPlayerImpl audioHapticPlayerImpl2;
792     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
793     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
794 
795     audioHapticPlayerImpl->ResetVibrateState();
796 }
797 
798 /**
799  * @tc.name  : Test AudioHapticPlayerImpl API
800  * @tc.number: AudioHapticPlayerImpl_038
801  * @tc.desc  : Test AudioHapticPlayerImpl::ResetVibrateState()
802  */
803 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_038, TestSize.Level1)
804 {
805     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
806 
807     EXPECT_NE(audioHapticPlayerImpl, nullptr);
808 
809     audioHapticPlayerImpl->audioHapticVibrator_ = nullptr;
810 
811     audioHapticPlayerImpl->ResetVibrateState();
812 }
813 
814 /**
815  * @tc.name  : Test AudioHapticPlayerImpl API
816  * @tc.number: AudioHapticPlayerImpl_039
817  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyInterruptEvent()
818  */
819 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_039, TestSize.Level1)
820 {
821     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
822 
823     EXPECT_NE(audioHapticPlayerImpl, nullptr);
824 
825     AudioStandard::InterruptEvent interruptEvent;
826     std::shared_ptr<AudioHapticPlayerCallback> playerCallback = std::make_shared<AudioHapticPlayerCallbackTest>();
827     audioHapticPlayerImpl->audioHapticPlayerCallback_ = playerCallback;
828     EXPECT_NE(audioHapticPlayerImpl->audioHapticPlayerCallback_.lock(), nullptr);
829 
830     audioHapticPlayerImpl->NotifyInterruptEvent(interruptEvent);
831 }
832 
833 /**
834  * @tc.name  : Test AudioHapticPlayerImpl API
835  * @tc.number: AudioHapticPlayerImpl_040
836  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyInterruptEvent()
837  */
838 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_040, TestSize.Level1)
839 {
840     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
841 
842     EXPECT_NE(audioHapticPlayerImpl, nullptr);
843 
844     AudioStandard::InterruptEvent interruptEvent;
845     audioHapticPlayerImpl->audioHapticPlayerCallback_.reset();
846 
847     audioHapticPlayerImpl->NotifyInterruptEvent(interruptEvent);
848 }
849 
850 /**
851  * @tc.name  : Test AudioHapticPlayerImpl API
852  * @tc.number: AudioHapticPlayerImpl_041
853  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyEndOfStreamEvent()
854  */
855 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_041, TestSize.Level1)
856 {
857     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
858 
859     EXPECT_NE(audioHapticPlayerImpl, nullptr);
860 
861     std::shared_ptr<AudioHapticPlayerCallback> playerCallback = std::make_shared<AudioHapticPlayerCallbackTest>();
862     audioHapticPlayerImpl->audioHapticPlayerCallback_ = playerCallback;
863     EXPECT_NE(audioHapticPlayerImpl->audioHapticPlayerCallback_.lock(), nullptr);
864 
865     audioHapticPlayerImpl->NotifyEndOfStreamEvent();
866 }
867 
868 /**
869  * @tc.name  : Test AudioHapticPlayerImpl API
870  * @tc.number: AudioHapticPlayerImpl_042
871  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyEndOfStreamEvent()
872  */
873 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_042, TestSize.Level1)
874 {
875     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
876 
877     EXPECT_NE(audioHapticPlayerImpl, nullptr);
878 
879     audioHapticPlayerImpl->audioHapticPlayerCallback_.reset();
880 
881     audioHapticPlayerImpl->NotifyEndOfStreamEvent();
882 }
883 
884 /**
885  * @tc.name  : Test AudioHapticPlayerImpl API
886  * @tc.number: AudioHapticPlayerImpl_043
887  * @tc.desc  : Test AudioHapticPlayerImpl::HandleEndOfStreamEventThreadFunc()
888  */
889 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_043, TestSize.Level1)
890 {
891     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
892 
893     EXPECT_NE(audioHapticPlayerImpl, nullptr);
894 
895     std::weak_ptr<AudioHapticPlayerImpl> player = audioHapticPlayerImpl;
896     EXPECT_NE(player.lock(), nullptr);
897 
898     audioHapticPlayerImpl->HandleEndOfStreamEventThreadFunc(player);
899 }
900 
901 /**
902  * @tc.name  : Test AudioHapticPlayerImpl API
903  * @tc.number: AudioHapticPlayerImpl_044
904  * @tc.desc  : Test AudioHapticPlayerImpl::HandleEndOfStreamEventThreadFunc()
905  */
906 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_044, TestSize.Level1)
907 {
908     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
909 
910     EXPECT_NE(audioHapticPlayerImpl, nullptr);
911 
912     std::weak_ptr<AudioHapticPlayerImpl> player;
913 
914     audioHapticPlayerImpl->HandleEndOfStreamEventThreadFunc(player);
915 }
916 
917 /**
918  * @tc.name  : Test AudioHapticPlayerImpl API
919  * @tc.number: AudioHapticPlayerImpl_045
920  * @tc.desc  : Test AudioHapticPlayerImpl::HandleEndOfStreamEvent()
921  */
922 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_045, TestSize.Level1)
923 {
924     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
925 
926     EXPECT_NE(audioHapticPlayerImpl, nullptr);
927 
928     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RELEASED;
929 
930     audioHapticPlayerImpl->HandleEndOfStreamEvent();
931 }
932 
933 /**
934  * @tc.name  : Test AudioHapticPlayerImpl API
935  * @tc.number: AudioHapticPlayerImpl_046
936  * @tc.desc  : Test AudioHapticPlayerImpl::HandleEndOfStreamEvent()
937  */
938 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_046, TestSize.Level1)
939 {
940     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
941 
942     EXPECT_NE(audioHapticPlayerImpl, nullptr);
943 
944     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_STOPPED;
945     audioHapticPlayerImpl->HandleEndOfStreamEvent();
946     EXPECT_EQ(audioHapticPlayerImpl->playerState_, AudioHapticPlayerState::STATE_STOPPED);
947 
948     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
949     audioHapticPlayerImpl->HandleEndOfStreamEvent();
950     EXPECT_EQ(audioHapticPlayerImpl->playerState_, AudioHapticPlayerState::STATE_STOPPED);
951 
952     int32_t syncId = 1;
953     audioHapticPlayerImpl->audioHapticSyncId_ = syncId;
954     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
955     audioHapticPlayerImpl->HandleEndOfStreamEvent();
956     EXPECT_EQ(audioHapticPlayerImpl->playerState_, AudioHapticPlayerState::STATE_STOPPED);
957     EXPECT_EQ(audioHapticPlayerImpl->audioHapticSyncId_, syncId);
958 
959     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_NEW;
960     audioHapticPlayerImpl->isSupportDSPSync_ = false;
961     audioHapticPlayerImpl->loop_ = true;
962     audioHapticPlayerImpl->HandleEndOfStreamEvent();
963     EXPECT_EQ(audioHapticPlayerImpl->playerState_, AudioHapticPlayerState::STATE_NEW);
964     EXPECT_EQ(audioHapticPlayerImpl->audioHapticSyncId_, syncId);
965 
966     audioHapticPlayerImpl->isSupportDSPSync_ = true;
967     audioHapticPlayerImpl->HandleEndOfStreamEvent();
968     EXPECT_EQ(audioHapticPlayerImpl->playerState_, AudioHapticPlayerState::STATE_NEW);
969     EXPECT_EQ(audioHapticPlayerImpl->audioHapticSyncId_, ++syncId);
970 }
971 
972 /**
973  * @tc.name  : Test AudioHapticPlayerImpl API
974  * @tc.number: AudioHapticPlayerImpl_047
975  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyErrorEvent()
976  */
977 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_047, TestSize.Level1)
978 {
979     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
980 
981     EXPECT_NE(audioHapticPlayerImpl, nullptr);
982 
983     int32_t errCode = 0;
984     std::shared_ptr<AudioHapticPlayerCallback> playerCallback = std::make_shared<AudioHapticPlayerCallbackTest>();
985     audioHapticPlayerImpl->audioHapticPlayerCallback_ = playerCallback;
986     EXPECT_NE(audioHapticPlayerImpl->audioHapticPlayerCallback_.lock(), nullptr);
987 
988     audioHapticPlayerImpl->NotifyErrorEvent(errCode);
989 }
990 
991 /**
992  * @tc.name  : Test AudioHapticPlayerImpl API
993  * @tc.number: AudioHapticPlayerImpl_048
994  * @tc.desc  : Test AudioHapticPlayerImpl::NotifyErrorEvent()
995  */
996 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_048, TestSize.Level1)
997 {
998     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
999 
1000     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1001 
1002     int32_t errCode = 0;
1003     audioHapticPlayerImpl->audioHapticPlayerCallback_.reset();
1004 
1005     audioHapticPlayerImpl->NotifyErrorEvent(errCode);
1006 }
1007 
1008 /**
1009  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1010  * @tc.number: AudioHapticPlayerImpl_049
1011  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnEndOfStream()
1012  */
1013 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_049, TestSize.Level1)
1014 {
1015     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1016     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1017     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1018     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1019 
1020     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_ = audioHapticPlayerImpl;
1021     EXPECT_NE(audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.lock(), nullptr);
1022 
1023     audioHapticSoundCallbackImpl->OnEndOfStream();
1024 }
1025 
1026 /**
1027  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1028  * @tc.number: AudioHapticPlayerImpl_050
1029  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnEndOfStream()
1030  */
1031 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_050, TestSize.Level1)
1032 {
1033     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1034     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1035     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1036     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1037 
1038     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.reset();
1039 
1040     audioHapticSoundCallbackImpl->OnEndOfStream();
1041 }
1042 
1043 /**
1044  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1045  * @tc.number: AudioHapticPlayerImpl_051
1046  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnError()
1047  */
1048 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_051, TestSize.Level1)
1049 {
1050     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1051     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1052     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1053     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1054 
1055     int32_t errorCode = 0;
1056     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_ = audioHapticPlayerImpl;
1057     EXPECT_NE(audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.lock(), nullptr);
1058 
1059     audioHapticSoundCallbackImpl->OnError(errorCode);
1060 }
1061 
1062 /**
1063  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1064  * @tc.number: AudioHapticPlayerImpl_052
1065  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnError()
1066  */
1067 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_052, TestSize.Level1)
1068 {
1069     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1070     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1071     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1072     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1073 
1074     int32_t errorCode = 0;
1075     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.reset();
1076 
1077     audioHapticSoundCallbackImpl->OnError(errorCode);
1078 }
1079 
1080 /**
1081  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1082  * @tc.number: AudioHapticPlayerImpl_053
1083  * @tc.desc  : Test AudioHapticSoundCallbackImpl::interruptEvent()
1084  */
1085 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_053, TestSize.Level1)
1086 {
1087     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1088     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1089     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1090     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1091 
1092     AudioStandard::InterruptEvent interruptEvent;
1093     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_ = audioHapticPlayerImpl;
1094     EXPECT_NE(audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.lock(), nullptr);
1095 
1096     audioHapticSoundCallbackImpl->OnInterrupt(interruptEvent);
1097 }
1098 
1099 /**
1100  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1101  * @tc.number: AudioHapticPlayerImpl_054
1102  * @tc.desc  : Test AudioHapticSoundCallbackImpl::interruptEvent()
1103  */
1104 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_054, TestSize.Level1)
1105 {
1106     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1107     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1108     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1109     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1110 
1111     AudioStandard::InterruptEvent interruptEvent;
1112     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.reset();
1113 
1114     audioHapticSoundCallbackImpl->OnInterrupt(interruptEvent);
1115 }
1116 
1117 /**
1118  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1119  * @tc.number: AudioHapticPlayerImpl_055
1120  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnFirstFrameWriting()
1121  */
1122 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_055, TestSize.Level1)
1123 {
1124     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1125     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1126     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1127     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1128 
1129     uint64_t latency = 0;
1130     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_ = audioHapticPlayerImpl;
1131     EXPECT_NE(audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.lock(), nullptr);
1132 
1133     audioHapticSoundCallbackImpl->OnFirstFrameWriting(latency);
1134 }
1135 
1136 /**
1137  * @tc.name  : Test AudioHapticSoundCallbackImpl API
1138  * @tc.number: AudioHapticPlayerImpl_056
1139  * @tc.desc  : Test AudioHapticSoundCallbackImpl::OnFirstFrameWriting()
1140  */
1141 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_056, TestSize.Level1)
1142 {
1143     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1144     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1145     auto audioHapticSoundCallbackImpl = std::make_shared<AudioHapticSoundCallbackImpl>(audioHapticPlayerImpl);
1146     EXPECT_NE(audioHapticSoundCallbackImpl, nullptr);
1147 
1148     uint64_t latency = 0;
1149     audioHapticSoundCallbackImpl->audioHapticPlayerImpl_.reset();
1150 
1151     audioHapticSoundCallbackImpl->OnFirstFrameWriting(latency);
1152 }
1153 
1154 /**
1155  * @tc.name  : Test EnableHapticsInSilentMode API
1156  * @tc.number: AudioHapticPlayerImpl_057
1157  * @tc.desc  : Test AudioHapticPlayerImpl::EnableHapticsInSilentMode()
1158  */
1159 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_057, TestSize.Level1)
1160 {
1161     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1162     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1163 
1164     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->EnableHapticsInSilentMode(true));
1165 
1166     AudioHapticPlayerImpl audioHapticPlayerImpl2;
1167     auto audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
1168     audioHapticPlayerImpl->audioHapticVibrator_ = audioHapticVibrator_;
1169     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
1170 
1171     audioHapticPlayerImpl->EnableHapticsInSilentMode(true);
1172     EXPECT_EQ(true, audioHapticVibrator_->enableInSilentMode_);
1173 
1174     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RUNNING;
1175     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->EnableHapticsInSilentMode(true));
1176 
1177     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RELEASED;
1178     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->EnableHapticsInSilentMode(true));
1179 }
1180 
1181 /**
1182  * @tc.name  : Test IsHapticsIntensityAdjustmentSupported API
1183  * @tc.number: AudioHapticPlayerImpl_058
1184  * @tc.desc  : Test AudioHapticPlayerImpl::IsHapticsIntensityAdjustmentSupported()
1185  */
1186 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_058, TestSize.Level1)
1187 {
1188     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1189     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1190 
1191     EXPECT_EQ(false, audioHapticPlayerImpl->IsHapticsIntensityAdjustmentSupported());
1192 
1193     AudioHapticPlayerImpl audioHapticPlayerImpl2;
1194     auto audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
1195     audioHapticPlayerImpl->audioHapticVibrator_ = audioHapticVibrator_;
1196     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
1197 
1198     EXPECT_EQ(audioHapticPlayerImpl->IsHapticsIntensityAdjustmentSupported(),
1199         audioHapticVibrator_->IsHapticsCustomSupported());
1200 }
1201 
1202 /**
1203  * @tc.name  : Test SetHapticsRamp API
1204  * @tc.number: AudioHapticPlayerImpl_059
1205  * @tc.desc  : Test AudioHapticPlayerImpl::SetHapticsRamp()
1206  */
1207 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_059, TestSize.Level1)
1208 {
1209     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1210     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1211 
1212     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RELEASED;
1213     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsRamp(50, 1.0f, 50.0f));
1214 
1215     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RUNNING;
1216     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsRamp(50, 1.0f, 50.0f));
1217 
1218     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_PREPARED;
1219     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(50, 1.0f, 50.0f));
1220 
1221     AudioHapticPlayerImpl audioHapticPlayerImpl2;
1222     auto audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
1223     audioHapticPlayerImpl->audioHapticVibrator_ = audioHapticVibrator_;
1224     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
1225 
1226     // test duration less than 100ms
1227     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(50, 1.0f, 50.0f));
1228     // test startIntensity less than 1.0f
1229     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(1000, -1.0f, 50.0f));
1230     // test startIntensity larger than 100.0f
1231     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(1000, 101.0f, 50.0f));
1232     // test endIntensity less than 1.0f
1233     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(1000, 50.0f, -1.0f));
1234     // test endIntensity larger than 100.0f
1235     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(1000, 50.0f, 101.0f));
1236     // test all params ok
1237     EXPECT_EQ(NOT_SUPPORTED_CODE, audioHapticPlayerImpl->SetHapticsRamp(1000, 50.0f, 90.0f));
1238 }
1239 
1240 /**
1241  * @tc.name  : Test SetHapticsFeature API
1242  * @tc.number: AudioHapticPlayerImpl_060
1243  * @tc.desc  : Test AudioHapticPlayerImpl::SetHapticsFeature()
1244  */
1245 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_060, TestSize.Level1)
1246 {
1247     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1248     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1249 
1250     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_RELEASED;
1251     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsFeature(HapticsFeature::GENTLE_HAPTICS));
1252 
1253     audioHapticPlayerImpl->playerState_ = AudioHapticPlayerState::STATE_STOPPED;
1254     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsFeature(HapticsFeature::GENTLE_HAPTICS));
1255 
1256     AudioHapticPlayerImpl audioHapticPlayerImpl2;
1257     auto audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
1258     audioHapticPlayerImpl->audioHapticVibrator_ = audioHapticVibrator_;
1259     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
1260 
1261     audioHapticPlayerImpl->isGentle_.store(true);
1262     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsFeature(HapticsFeature::GENTLE_HAPTICS));
1263 
1264     audioHapticPlayerImpl->isGentle_.store(false);
1265     EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, audioHapticPlayerImpl->SetHapticsFeature(HapticsFeature::GENTLE_HAPTICS));
1266 }
1267 
1268 /**
1269  * @tc.name  : Test AudioHapticPlayerImpl API
1270  * @tc.number: AudioHapticPlayerImpl_061
1271  * @tc.desc  : Test AudioHapticPlayerImpl::Start()
1272  */
1273 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_061, TestSize.Level1)
1274 {
1275     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1276     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1277     EXPECT_EQ(audioHapticPlayerImpl->audioHapticSyncId_, MSERR_OK);
1278 
1279     AudioHapticPlayerImpl audioHapticPlayerImpl2;
1280     audioHapticPlayerImpl->audioHapticVibrator_ = std::make_shared<AudioHapticVibratorImpl>(audioHapticPlayerImpl2);
1281     EXPECT_NE(audioHapticPlayerImpl->audioHapticVibrator_, nullptr);
1282 
1283     AudioSource audioSource;
1284     audioHapticPlayerImpl->audioHapticSound_ =
1285         std::make_shared<AudioHapticSoundNormalImpl>(audioSource, false, AudioStandard::STREAM_USAGE_UNKNOWN);
1286     EXPECT_NE(audioHapticPlayerImpl->audioHapticSound_, nullptr);
1287 
1288     audioHapticPlayerImpl->vibrateThread_ = nullptr;
1289     audioHapticPlayerImpl->isSupportDSPSync_ = true;
1290     auto ret = audioHapticPlayerImpl->Start();
1291     EXPECT_NE(ret, MSERR_OK);
1292     EXPECT_NE(audioHapticPlayerImpl->audioHapticSyncId_, MSERR_OK);
1293 }
1294 
1295 /**
1296  * @tc.name  : Test AudioHapticPlayerImpl API
1297  * @tc.number: AudioHapticPlayerImpl_062
1298  * @tc.desc  : Test AudioHapticPlayerImpl::GetDelayTime()
1299  */
1300 HWTEST_F(AudioHapticPlayerImplUnitTest, AudioHapticPlayerImpl_062, TestSize.Level1)
1301 {
1302     auto audioHapticPlayerImpl = std::make_shared<AudioHapticPlayerImpl>();
1303     EXPECT_NE(audioHapticPlayerImpl, nullptr);
1304 
1305     audioHapticPlayerImpl->latencyMode_ = AUDIO_LATENCY_MODE_FAST;
1306     EXPECT_EQ(audioHapticPlayerImpl->GetDelayTime(0), 0);
1307 
1308     audioHapticPlayerImpl->latencyMode_ = AUDIO_LATENCY_MODE_NORMAL;
1309     EXPECT_EQ(audioHapticPlayerImpl->GetDelayTime(0), 80);
1310 }
1311 } // namespace Media
1312 } // namespace OHOS