blob: 29674762952330a0540089c7d31b08119d8f2771 [file] [log] [blame]
Hunsuk Choi9d4f38c2021-12-16 21:50:04 +00001/*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
19#include <aidl/android/hardware/radio/ims/BnRadioImsIndication.h>
20#include <aidl/android/hardware/radio/ims/BnRadioImsResponse.h>
21#include <aidl/android/hardware/radio/ims/IRadioIms.h>
22
23#include "radio_aidl_hal_utils.h"
24
25using namespace aidl::android::hardware::radio::ims;
26
27class RadioImsTest;
28
29/* Callback class for radio ims response */
30class RadioImsResponse : public BnRadioImsResponse {
31 protected:
32 RadioServiceTest& parent_ims;
33
34 public:
35 RadioImsResponse(RadioServiceTest& parent_ims);
36 virtual ~RadioImsResponse() = default;
37
38 RadioResponseInfo rspInfo;
Hunsuk Choif3ef4ff2022-03-29 03:10:35 +000039 std::optional<ConnectionFailureInfo> startImsTrafficResp;
Hunsuk Choi9d4f38c2021-12-16 21:50:04 +000040
41 virtual ndk::ScopedAStatus setSrvccCallInfoResponse(const RadioResponseInfo& info) override;
42
43 virtual ndk::ScopedAStatus updateImsRegistrationInfoResponse(
44 const RadioResponseInfo& info) override;
45
Hunsuk Choif3ef4ff2022-03-29 03:10:35 +000046 virtual ndk::ScopedAStatus startImsTrafficResponse(const RadioResponseInfo& info,
47 const std::optional<ConnectionFailureInfo>& response) override;
Hunsuk Choi9d4f38c2021-12-16 21:50:04 +000048
Hunsuk Choif3ef4ff2022-03-29 03:10:35 +000049 virtual ndk::ScopedAStatus stopImsTrafficResponse(const RadioResponseInfo& info) override;
Hwayoung1ec992a2022-02-15 09:48:07 +000050
51 virtual ndk::ScopedAStatus setAnbrEnabledResponse(const RadioResponseInfo& info) override;
52
53 virtual ndk::ScopedAStatus sendAnbrQueryResponse(const RadioResponseInfo& info) override;
Hunsuk Choi9d4f38c2021-12-16 21:50:04 +000054};
55
56/* Callback class for radio ims indication */
57class RadioImsIndication : public BnRadioImsIndication {
58 protected:
59 RadioServiceTest& parent_ims;
60
61 public:
62 RadioImsIndication(RadioServiceTest& parent_ims);
63 virtual ~RadioImsIndication() = default;
64
Hunsuk Choif3ef4ff2022-03-29 03:10:35 +000065 virtual ndk::ScopedAStatus onConnectionSetupFailure(RadioIndicationType type,
66 const std::string& token, const ConnectionFailureInfo& info) override;
Hwayoung1ec992a2022-02-15 09:48:07 +000067
68 virtual ndk::ScopedAStatus notifyAnbr(RadioIndicationType type, int qosSessionId,
69 ImsStreamDirection direction, int bitsPerSecond) override;
Hunsuk Choidb17f4f2022-04-12 06:26:48 +000070
71 virtual ndk::ScopedAStatus triggerImsDeregistration(RadioIndicationType type) override;
Hunsuk Choi9d4f38c2021-12-16 21:50:04 +000072};
73
74// The main test class for Radio AIDL Ims.
75class RadioImsTest : public ::testing::TestWithParam<std::string>, public RadioServiceTest {
76 protected:
77 virtual void verifyError(RadioError resp);
78
79 public:
80 virtual void SetUp() override;
81
82 /* radio ims service handle */
83 std::shared_ptr<IRadioIms> radio_ims;
84 /* radio ims response handle */
85 std::shared_ptr<RadioImsResponse> radioRsp_ims;
86 /* radio ims indication handle */
87 std::shared_ptr<RadioImsIndication> radioInd_ims;
88};