1fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
2fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Copyright (C) 2017 The Android Open Source Project
3fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe *
4fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Licensed under the Apache License, Version 2.0 (the "License");
5fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * you may not use this file except in compliance with the License.
6fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * You may obtain a copy of the License at
7fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe *
8fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe *      http://www.apache.org/licenses/LICENSE-2.0
9fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe *
10fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Unless required by applicable law or agreed to in writing, software
11fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * distributed under the License is distributed on an "AS IS" BASIS,
12fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * See the License for the specific language governing permissions and
14fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * limitations under the License.
15fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
16fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
170c74fc78392703e19ba51ce0ced510a55a0a994bsqian#include <radio_hidl_hal_utils_v1_0.h>
18fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
19fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
20fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.getCurrentCalls() for the response returned.
21fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
22fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, getCurrentCalls) {
23788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
24fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
25fcc61188827e1472965b36041c29b80cbe4079basqian    radio->getCurrentCalls(serial);
26fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
27fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
28fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
29fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
30fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
317fe9365e6fb10533d75000eddd5287ca6408f897sqian        EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
32fcc61188827e1472965b36041c29b80cbe4079basqian    }
33fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
34fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
35fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
36fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.dial() for the response returned.
37fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
38fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, dial) {
39788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
40fcc61188827e1472965b36041c29b80cbe4079basqian
41fcc61188827e1472965b36041c29b80cbe4079basqian    Dial dialInfo;
42fcc61188827e1472965b36041c29b80cbe4079basqian    memset(&dialInfo, 0, sizeof(dialInfo));
43fcc61188827e1472965b36041c29b80cbe4079basqian    dialInfo.address = hidl_string("123456789");
44fcc61188827e1472965b36041c29b80cbe4079basqian
45fcc61188827e1472965b36041c29b80cbe4079basqian    radio->dial(serial, dialInfo);
46fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
47fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
48fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
49fcc61188827e1472965b36041c29b80cbe4079basqian
50fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
517fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
527fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
537fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::CANCELLED, RadioError::DEVICE_IN_USE, RadioError::FDN_CHECK_FAILURE,
547fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::INVALID_ARGUMENTS, RadioError::INVALID_CALL_ID,
557fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::INVALID_MODEM_STATE, RadioError::INVALID_STATE, RadioError::MODEM_ERR,
567fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::NO_NETWORK_FOUND, RadioError::NO_SUBSCRIPTION,
577fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::OPERATION_NOT_ALLOWED},
587fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
59fcc61188827e1472965b36041c29b80cbe4079basqian    }
60fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
61fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
62fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
63fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.hangup() for the response returned.
64fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
65fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, hangup) {
66788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
67fcc61188827e1472965b36041c29b80cbe4079basqian
68fcc61188827e1472965b36041c29b80cbe4079basqian    radio->hangup(serial, 1);
69fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
70fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
71fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
72fcc61188827e1472965b36041c29b80cbe4079basqian
73fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
747fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
757fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
767fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
777fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
78fcc61188827e1472965b36041c29b80cbe4079basqian    }
79fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
80fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
81fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
82fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.hangupWaitingOrBackground() for the response returned.
83fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
84fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, hangupWaitingOrBackground) {
85788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
86fcc61188827e1472965b36041c29b80cbe4079basqian
87fcc61188827e1472965b36041c29b80cbe4079basqian    radio->hangupWaitingOrBackground(serial);
88fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
89fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
90fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
91fcc61188827e1472965b36041c29b80cbe4079basqian
92fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
937fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
947fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
957fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
96fcc61188827e1472965b36041c29b80cbe4079basqian    }
97fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
98fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
99fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
100fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.hangupForegroundResumeBackground() for the response returned.
101fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
102fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, hangupForegroundResumeBackground) {
103788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
104fcc61188827e1472965b36041c29b80cbe4079basqian
105fcc61188827e1472965b36041c29b80cbe4079basqian    radio->hangupForegroundResumeBackground(serial);
106fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
107fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
108fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
109fcc61188827e1472965b36041c29b80cbe4079basqian
110fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1117fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
1127fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
1137fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
114fcc61188827e1472965b36041c29b80cbe4079basqian    }
115fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
116fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
117fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
118fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.switchWaitingOrHoldingAndActive() for the response returned.
119fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
120fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, switchWaitingOrHoldingAndActive) {
121788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
122fcc61188827e1472965b36041c29b80cbe4079basqian
123fcc61188827e1472965b36041c29b80cbe4079basqian    radio->switchWaitingOrHoldingAndActive(serial);
124fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
125fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
126fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
127fcc61188827e1472965b36041c29b80cbe4079basqian
128fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1297fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
1307fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
1317fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
132fcc61188827e1472965b36041c29b80cbe4079basqian    }
133fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
134fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
135fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
136fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.conference() for the response returned.
137fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
138fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, conference) {
139788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
140fcc61188827e1472965b36041c29b80cbe4079basqian
141fcc61188827e1472965b36041c29b80cbe4079basqian    radio->conference(serial);
142fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
143fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
144fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
145fcc61188827e1472965b36041c29b80cbe4079basqian
146fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1477fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
1487fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
1497fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
150fcc61188827e1472965b36041c29b80cbe4079basqian    }
151fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
152fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
153fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
154fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.rejectCall() for the response returned.
155fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
156fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, rejectCall) {
157788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
158fcc61188827e1472965b36041c29b80cbe4079basqian
159fcc61188827e1472965b36041c29b80cbe4079basqian    radio->rejectCall(serial);
160fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
161fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
162fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
163fcc61188827e1472965b36041c29b80cbe4079basqian
164fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1657fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
1667fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
1677fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
168fcc61188827e1472965b36041c29b80cbe4079basqian    }
169fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
170fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
171fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
172fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.getLastCallFailCause() for the response returned.
173fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
174fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, getLastCallFailCause) {
175788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
176fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
177fcc61188827e1472965b36041c29b80cbe4079basqian    radio->getLastCallFailCause(serial);
178fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
179fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
180fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
181fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
182fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1837fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(
1847fe9365e6fb10533d75000eddd5287ca6408f897sqian            CheckAnyOfErrors(radioRsp->rspInfo.error, {RadioError::NONE}, CHECK_GENERAL_ERROR));
185fcc61188827e1472965b36041c29b80cbe4079basqian    }
186fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
187fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
188fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
189fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.sendUssd() for the response returned.
190fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
191fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, sendUssd) {
192788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
193fcc61188827e1472965b36041c29b80cbe4079basqian    radio->sendUssd(serial, hidl_string("test"));
194fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
195fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
196fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
197fcc61188827e1472965b36041c29b80cbe4079basqian
198fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
1997fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
2007fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
2017fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
2027fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
203fcc61188827e1472965b36041c29b80cbe4079basqian    }
204fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
205fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
206fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
207fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.cancelPendingUssd() for the response returned.
208fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
209fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, cancelPendingUssd) {
210788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
211fcc61188827e1472965b36041c29b80cbe4079basqian
212fcc61188827e1472965b36041c29b80cbe4079basqian    radio->cancelPendingUssd(serial);
213fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
214fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
215fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
216fcc61188827e1472965b36041c29b80cbe4079basqian
217fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
2187fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(
2197fe9365e6fb10533d75000eddd5287ca6408f897sqian            CheckAnyOfErrors(radioRsp->rspInfo.error,
2207fe9365e6fb10533d75000eddd5287ca6408f897sqian                             {RadioError::NONE, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
2217fe9365e6fb10533d75000eddd5287ca6408f897sqian                             CHECK_GENERAL_ERROR));
222fcc61188827e1472965b36041c29b80cbe4079basqian    }
223fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
224fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
225fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
226fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.getCallForwardStatus() for the response returned.
227fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
228fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, getCallForwardStatus) {
229788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
230fcc61188827e1472965b36041c29b80cbe4079basqian    CallForwardInfo callInfo;
231fcc61188827e1472965b36041c29b80cbe4079basqian    memset(&callInfo, 0, sizeof(callInfo));
232fcc61188827e1472965b36041c29b80cbe4079basqian    callInfo.number = hidl_string();
233fcc61188827e1472965b36041c29b80cbe4079basqian
234fcc61188827e1472965b36041c29b80cbe4079basqian    radio->getCallForwardStatus(serial, callInfo);
235fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
236fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
237fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
238fcc61188827e1472965b36041c29b80cbe4079basqian
239fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
2407fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
2417fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
2427fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
2437fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
244fcc61188827e1472965b36041c29b80cbe4079basqian    }
245fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
246fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
247fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
248fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.setCallForward() for the response returned.
249fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
250fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, setCallForward) {
251788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
252fcc61188827e1472965b36041c29b80cbe4079basqian    CallForwardInfo callInfo;
253fcc61188827e1472965b36041c29b80cbe4079basqian    memset(&callInfo, 0, sizeof(callInfo));
254fcc61188827e1472965b36041c29b80cbe4079basqian    callInfo.number = hidl_string();
255fcc61188827e1472965b36041c29b80cbe4079basqian
256fcc61188827e1472965b36041c29b80cbe4079basqian    radio->setCallForward(serial, callInfo);
257fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
258fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
259fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
260fcc61188827e1472965b36041c29b80cbe4079basqian
261fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
2627fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
2637fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
2647fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
2657fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
266fcc61188827e1472965b36041c29b80cbe4079basqian    }
267fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
268fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
269fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
270fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.getCallWaiting() for the response returned.
271fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
272fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, getCallWaiting) {
273788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
274fcc61188827e1472965b36041c29b80cbe4079basqian
275fcc61188827e1472965b36041c29b80cbe4079basqian    radio->getCallWaiting(serial, 1);
276fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
277fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
278fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
279fcc61188827e1472965b36041c29b80cbe4079basqian
280fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
2817fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
2827fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
2837fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::NONE, RadioError::INVALID_ARGUMENTS, RadioError::MODEM_ERR},
2847fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
285fcc61188827e1472965b36041c29b80cbe4079basqian    }
286fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
287fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
288fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
289fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.setCallWaiting() for the response returned.
290fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
291fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, setCallWaiting) {
292788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
293fcc61188827e1472965b36041c29b80cbe4079basqian
294fcc61188827e1472965b36041c29b80cbe4079basqian    radio->setCallWaiting(serial, true, 1);
295fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
296fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
297fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
298fcc61188827e1472965b36041c29b80cbe4079basqian
299fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3007fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
3017fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
3027fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
3037fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
304fcc61188827e1472965b36041c29b80cbe4079basqian    }
305fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
306fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
307fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
308fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.acceptCall() for the response returned.
309fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
310fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, acceptCall) {
311788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
312fcc61188827e1472965b36041c29b80cbe4079basqian
313fcc61188827e1472965b36041c29b80cbe4079basqian    radio->acceptCall(serial);
314fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
315fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
316fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
317fcc61188827e1472965b36041c29b80cbe4079basqian
318fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3197fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
3207fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
3217fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
322fcc61188827e1472965b36041c29b80cbe4079basqian    }
323fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
324fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
325fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
326fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.separateConnection() for the response returned.
327fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
328fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, separateConnection) {
329788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
330fcc61188827e1472965b36041c29b80cbe4079basqian
331fcc61188827e1472965b36041c29b80cbe4079basqian    radio->separateConnection(serial, 1);
332fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
333fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
334fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
335fcc61188827e1472965b36041c29b80cbe4079basqian
336fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3377fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
3387fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
3397fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::MODEM_ERR},
3407fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
341fcc61188827e1472965b36041c29b80cbe4079basqian    }
342fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
343fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
344fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
345fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.explicitCallTransfer() for the response returned.
346fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
347fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, explicitCallTransfer) {
348788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
349fcc61188827e1472965b36041c29b80cbe4079basqian
350fcc61188827e1472965b36041c29b80cbe4079basqian    radio->explicitCallTransfer(serial);
351fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
352fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
353fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
354fcc61188827e1472965b36041c29b80cbe4079basqian
355fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3567fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
3577fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_STATE, RadioError::MODEM_ERR},
3587fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
359fcc61188827e1472965b36041c29b80cbe4079basqian    }
3606f957ea5c5051234935dbe69019fe5f91f668e2dSanket Padawe}
3616f957ea5c5051234935dbe69019fe5f91f668e2dSanket Padawe
3626f957ea5c5051234935dbe69019fe5f91f668e2dSanket Padawe/*
3636f957ea5c5051234935dbe69019fe5f91f668e2dSanket Padawe * Test IRadio.sendCDMAFeatureCode() for the response returned.
3646f957ea5c5051234935dbe69019fe5f91f668e2dSanket Padawe */
3656f957ea5c5051234935dbe69019fe5f91f668e2dSanket PadaweTEST_F(RadioHidlTest, sendCDMAFeatureCode) {
366788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
367fcc61188827e1472965b36041c29b80cbe4079basqian
368fcc61188827e1472965b36041c29b80cbe4079basqian    radio->sendCDMAFeatureCode(serial, hidl_string());
369fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
370fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
371fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
372fcc61188827e1472965b36041c29b80cbe4079basqian
373fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3747fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
3757fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::NONE, RadioError::INVALID_ARGUMENTS,
3767fe9365e6fb10533d75000eddd5287ca6408f897sqian                                      RadioError::INVALID_CALL_ID, RadioError::INVALID_MODEM_STATE,
3777fe9365e6fb10533d75000eddd5287ca6408f897sqian                                      RadioError::MODEM_ERR, RadioError::OPERATION_NOT_ALLOWED},
3787fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
379fcc61188827e1472965b36041c29b80cbe4079basqian    }
380fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
381fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
382fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
383fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.sendDtmf() for the response returned.
384fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
385fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, sendDtmf) {
386788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
387fcc61188827e1472965b36041c29b80cbe4079basqian
388fcc61188827e1472965b36041c29b80cbe4079basqian    radio->sendDtmf(serial, "1");
389fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
390fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
391fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
392fcc61188827e1472965b36041c29b80cbe4079basqian
393fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
3947fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
3957fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
3967fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::NONE, RadioError::INVALID_ARGUMENTS, RadioError::INVALID_CALL_ID,
3977fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::INVALID_MODEM_STATE, RadioError::MODEM_ERR},
3987fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
399fcc61188827e1472965b36041c29b80cbe4079basqian    }
400fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
401fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
402fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
403fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.startDtmf() for the response returned.
404fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
405fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, startDtmf) {
406788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
407fcc61188827e1472965b36041c29b80cbe4079basqian
408fcc61188827e1472965b36041c29b80cbe4079basqian    radio->startDtmf(serial, "1");
409fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
410fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
411fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
412fcc61188827e1472965b36041c29b80cbe4079basqian
413fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
4147fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(
4157fe9365e6fb10533d75000eddd5287ca6408f897sqian            radioRsp->rspInfo.error,
4167fe9365e6fb10533d75000eddd5287ca6408f897sqian            {RadioError::NONE, RadioError::INVALID_ARGUMENTS, RadioError::INVALID_CALL_ID,
4177fe9365e6fb10533d75000eddd5287ca6408f897sqian             RadioError::INVALID_MODEM_STATE, RadioError::MODEM_ERR},
4187fe9365e6fb10533d75000eddd5287ca6408f897sqian            CHECK_GENERAL_ERROR));
419fcc61188827e1472965b36041c29b80cbe4079basqian    }
420fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
421fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
422fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
423fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.stopDtmf() for the response returned.
424fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
425fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, stopDtmf) {
426788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
427fcc61188827e1472965b36041c29b80cbe4079basqian
428fcc61188827e1472965b36041c29b80cbe4079basqian    radio->stopDtmf(serial);
429fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
430fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
431fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
432fcc61188827e1472965b36041c29b80cbe4079basqian
433fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
4347fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
4357fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::NONE, RadioError::INVALID_CALL_ID,
4367fe9365e6fb10533d75000eddd5287ca6408f897sqian                                      RadioError::INVALID_MODEM_STATE, RadioError::MODEM_ERR},
4377fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
438fcc61188827e1472965b36041c29b80cbe4079basqian    }
439fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
440fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
441fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
442fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.setMute() for the response returned.
443fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
444fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, setMute) {
445788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
446fcc61188827e1472965b36041c29b80cbe4079basqian
447fcc61188827e1472965b36041c29b80cbe4079basqian    radio->setMute(serial, true);
448fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
449fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
450fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
451fcc61188827e1472965b36041c29b80cbe4079basqian
452fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
4537fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
4547fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::NONE, RadioError::INVALID_ARGUMENTS},
4557fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
456fcc61188827e1472965b36041c29b80cbe4079basqian    }
457fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
458fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
459fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
460fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.getMute() for the response returned.
461fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
462fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, getMute) {
463788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
464fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
465fcc61188827e1472965b36041c29b80cbe4079basqian    radio->getMute(serial);
466fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
467fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
468fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
469fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
470fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
4717fe9365e6fb10533d75000eddd5287ca6408f897sqian        EXPECT_EQ(RadioError::NONE, radioRsp->rspInfo.error);
472fcc61188827e1472965b36041c29b80cbe4079basqian    }
473fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe}
474fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe
475fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe/*
476fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe * Test IRadio.sendBurstDtmf() for the response returned.
477fe7c7a3a695fdaace94028898e7692eea83a4566Sanket Padawe */
478fe7c7a3a695fdaace94028898e7692eea83a4566Sanket PadaweTEST_F(RadioHidlTest, sendBurstDtmf) {
479788eb8083059ff0dca686734ceebf942042c4893sqian    serial = GetRandomSerialNumber();
480fcc61188827e1472965b36041c29b80cbe4079basqian
481fcc61188827e1472965b36041c29b80cbe4079basqian    radio->sendBurstDtmf(serial, "1", 0, 0);
482fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(std::cv_status::no_timeout, wait());
483fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp->rspInfo.type);
484fcc61188827e1472965b36041c29b80cbe4079basqian    EXPECT_EQ(serial, radioRsp->rspInfo.serial);
485fcc61188827e1472965b36041c29b80cbe4079basqian
486fcc61188827e1472965b36041c29b80cbe4079basqian    if (cardStatus.cardState == CardState::ABSENT) {
4877fe9365e6fb10533d75000eddd5287ca6408f897sqian        ASSERT_TRUE(CheckAnyOfErrors(radioRsp->rspInfo.error,
4887fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE,
4897fe9365e6fb10533d75000eddd5287ca6408f897sqian                                      RadioError::MODEM_ERR, RadioError::OPERATION_NOT_ALLOWED},
4907fe9365e6fb10533d75000eddd5287ca6408f897sqian                                     CHECK_GENERAL_ERROR));
491fcc61188827e1472965b36041c29b80cbe4079basqian    }
49240c4ff77c6f57998074ed3f0377b935864bdce4asqian}
493