blob: fb91ef61d588072884b31cc2505fd128c8505e24 [file] [log] [blame]
Sarah Chind2a41192021-12-21 11:34:00 -08001/*
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/data/BnRadioDataIndication.h>
20#include <aidl/android/hardware/radio/data/BnRadioDataResponse.h>
21#include <aidl/android/hardware/radio/data/IRadioData.h>
22
23#include "radio_aidl_hal_utils.h"
24
25using namespace aidl::android::hardware::radio::data;
Sarah Chind2a41192021-12-21 11:34:00 -080026
27class RadioDataTest;
28
29/* Callback class for radio data response */
30class RadioDataResponse : public BnRadioDataResponse {
31 protected:
Sarah Chin91997ac2021-12-29 00:35:12 -080032 RadioServiceTest& parent_data;
Sarah Chind2a41192021-12-21 11:34:00 -080033
34 public:
Sarah Chin91997ac2021-12-29 00:35:12 -080035 RadioDataResponse(RadioServiceTest& parent_data);
Sarah Chind2a41192021-12-21 11:34:00 -080036 virtual ~RadioDataResponse() = default;
37
38 RadioResponseInfo rspInfo;
39 int32_t allocatedPduSessionId;
40 SetupDataCallResult setupDataCallResult;
41
42 virtual ndk::ScopedAStatus acknowledgeRequest(int32_t serial) override;
43
44 virtual ndk::ScopedAStatus allocatePduSessionIdResponse(const RadioResponseInfo& info,
45 int32_t id) override;
46
47 virtual ndk::ScopedAStatus cancelHandoverResponse(const RadioResponseInfo& info) override;
48
49 virtual ndk::ScopedAStatus deactivateDataCallResponse(const RadioResponseInfo& info) override;
50
51 virtual ndk::ScopedAStatus getDataCallListResponse(
52 const RadioResponseInfo& info,
53 const std::vector<SetupDataCallResult>& dcResponse) override;
54
55 virtual ndk::ScopedAStatus getSlicingConfigResponse(
56 const RadioResponseInfo& info, const SlicingConfig& slicingConfig) override;
57
58 virtual ndk::ScopedAStatus releasePduSessionIdResponse(const RadioResponseInfo& info) override;
59
60 virtual ndk::ScopedAStatus setDataAllowedResponse(const RadioResponseInfo& info) override;
61
62 virtual ndk::ScopedAStatus setDataProfileResponse(const RadioResponseInfo& info) override;
63
64 virtual ndk::ScopedAStatus setDataThrottlingResponse(const RadioResponseInfo& info) override;
65
66 virtual ndk::ScopedAStatus setInitialAttachApnResponse(const RadioResponseInfo& info) override;
67
68 virtual ndk::ScopedAStatus setupDataCallResponse(
69 const RadioResponseInfo& info, const SetupDataCallResult& dcResponse) override;
70
71 virtual ndk::ScopedAStatus startHandoverResponse(const RadioResponseInfo& info) override;
72
73 virtual ndk::ScopedAStatus startKeepaliveResponse(const RadioResponseInfo& info,
74 const KeepaliveStatus& status) override;
75
76 virtual ndk::ScopedAStatus stopKeepaliveResponse(const RadioResponseInfo& info) override;
77};
78
79/* Callback class for radio data indication */
80class RadioDataIndication : public BnRadioDataIndication {
81 protected:
Sarah Chin91997ac2021-12-29 00:35:12 -080082 RadioServiceTest& parent_data;
Sarah Chind2a41192021-12-21 11:34:00 -080083
84 public:
Sarah Chin91997ac2021-12-29 00:35:12 -080085 RadioDataIndication(RadioServiceTest& parent_data);
Sarah Chind2a41192021-12-21 11:34:00 -080086 virtual ~RadioDataIndication() = default;
87
88 virtual ndk::ScopedAStatus dataCallListChanged(
89 RadioIndicationType type, const std::vector<SetupDataCallResult>& dcList) override;
90
91 virtual ndk::ScopedAStatus keepaliveStatus(RadioIndicationType type,
92 const KeepaliveStatus& status) override;
93
94 virtual ndk::ScopedAStatus pcoData(RadioIndicationType type, const PcoDataInfo& pco) override;
95
96 virtual ndk::ScopedAStatus unthrottleApn(RadioIndicationType type,
97 const DataProfileInfo& dataProfile) override;
Sooraj Sasindrand561cc32022-01-11 09:42:21 -080098 virtual ndk::ScopedAStatus slicingConfigChanged(RadioIndicationType type,
99 const SlicingConfig& slicingConfig) override;
Sarah Chind2a41192021-12-21 11:34:00 -0800100};
101
102// The main test class for Radio AIDL Data.
Sarah Chin91997ac2021-12-29 00:35:12 -0800103class RadioDataTest : public ::testing::TestWithParam<std::string>, public RadioServiceTest {
Sarah Chind2a41192021-12-21 11:34:00 -0800104 protected:
105 /* Get current data call list */
106 ndk::ScopedAStatus getDataCallList();
107
108 public:
109 virtual void SetUp() override;
110
111 /* radio data service handle */
112 std::shared_ptr<IRadioData> radio_data;
113 /* radio data response handle */
114 std::shared_ptr<RadioDataResponse> radioRsp_data;
115 /* radio data indication handle */
116 std::shared_ptr<RadioDataIndication> radioInd_data;
117};