1e5d0e473Sopenharmony_ci/* 2e5d0e473Sopenharmony_ci * Copyright (C) 2022-2023 Huawei Device Co., Ltd. 3e5d0e473Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e5d0e473Sopenharmony_ci * you may not use this file except in compliance with the License. 5e5d0e473Sopenharmony_ci * You may obtain a copy of the License at 6e5d0e473Sopenharmony_ci * 7e5d0e473Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e5d0e473Sopenharmony_ci * 9e5d0e473Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e5d0e473Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e5d0e473Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e5d0e473Sopenharmony_ci * See the License for the specific language governing permissions and 13e5d0e473Sopenharmony_ci * limitations under the License. 14e5d0e473Sopenharmony_ci */ 15e5d0e473Sopenharmony_ci 16e5d0e473Sopenharmony_ci#include "sms_send_callback_gtest.h" 17e5d0e473Sopenharmony_ci 18e5d0e473Sopenharmony_ci#include <iostream> 19e5d0e473Sopenharmony_ci 20e5d0e473Sopenharmony_ci#include "telephony_errors.h" 21e5d0e473Sopenharmony_ci#include "telephony_log_wrapper.h" 22e5d0e473Sopenharmony_ci 23e5d0e473Sopenharmony_cinamespace OHOS { 24e5d0e473Sopenharmony_cinamespace Telephony { 25e5d0e473Sopenharmony_cistatic constexpr int SMS_DEFAULT_RESULT = 0; 26e5d0e473Sopenharmony_cistatic constexpr int SMS_DEFAULT_ERROR = -1; 27e5d0e473Sopenharmony_ci 28e5d0e473Sopenharmony_ciSmsSendCallbackGTest::SmsSendCallbackGTest(SmsMmsTestHelper &helper) 29e5d0e473Sopenharmony_ci{ 30e5d0e473Sopenharmony_ci callbackHelper_ = &helper; 31e5d0e473Sopenharmony_ci} 32e5d0e473Sopenharmony_ci 33e5d0e473Sopenharmony_ciSmsSendCallbackGTest::~SmsSendCallbackGTest() {} 34e5d0e473Sopenharmony_ci 35e5d0e473Sopenharmony_civoid SmsSendCallbackGTest::HasDeliveryCallBack(bool hasCallback) 36e5d0e473Sopenharmony_ci{ 37e5d0e473Sopenharmony_ci hasDeliveryCallback_ = hasCallback; 38e5d0e473Sopenharmony_ci} 39e5d0e473Sopenharmony_ci 40e5d0e473Sopenharmony_civoid SmsSendCallbackGTest::OnSmsSendResult(const ISendShortMessageCallback::SmsSendResult result) 41e5d0e473Sopenharmony_ci{ 42e5d0e473Sopenharmony_ci TELEPHONY_LOGI("SmsSendCallbackGTest OnSmsSendResult = %{public}d", result); 43e5d0e473Sopenharmony_ci if (callbackHelper_ == nullptr) { 44e5d0e473Sopenharmony_ci TELEPHONY_LOGE("SmsSendCallbackGTest callbackHelper_ is nullptr"); 45e5d0e473Sopenharmony_ci return; 46e5d0e473Sopenharmony_ci } 47e5d0e473Sopenharmony_ci 48e5d0e473Sopenharmony_ci callbackHelper_->SetSendSmsIntResult(result); 49e5d0e473Sopenharmony_ci if (!hasDeliveryCallback_) { 50e5d0e473Sopenharmony_ci callbackHelper_->NotifyAll(); 51e5d0e473Sopenharmony_ci } 52e5d0e473Sopenharmony_ci callbackHelper_ = nullptr; 53e5d0e473Sopenharmony_ci} 54e5d0e473Sopenharmony_ci 55e5d0e473Sopenharmony_ciint SmsSendCallbackGTest::OnRemoteRequest( 56e5d0e473Sopenharmony_ci uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 57e5d0e473Sopenharmony_ci{ 58e5d0e473Sopenharmony_ci if (data.ReadInterfaceToken() != GetDescriptor()) { 59e5d0e473Sopenharmony_ci TELEPHONY_LOGE("descriptor checked fail"); 60e5d0e473Sopenharmony_ci return TELEPHONY_ERR_DESCRIPTOR_MISMATCH; 61e5d0e473Sopenharmony_ci } 62e5d0e473Sopenharmony_ci 63e5d0e473Sopenharmony_ci switch (code) { 64e5d0e473Sopenharmony_ci case static_cast<int>(SendShortMessageCallbackInterfaceCode::ON_SMS_SEND_RESULT): { 65e5d0e473Sopenharmony_ci int32_t result = data.ReadInt32(); 66e5d0e473Sopenharmony_ci OnSmsSendResult(static_cast<ISendShortMessageCallback::SmsSendResult>(result)); 67e5d0e473Sopenharmony_ci return SMS_DEFAULT_RESULT; 68e5d0e473Sopenharmony_ci } 69e5d0e473Sopenharmony_ci default: { 70e5d0e473Sopenharmony_ci return SMS_DEFAULT_ERROR; 71e5d0e473Sopenharmony_ci } 72e5d0e473Sopenharmony_ci } 73e5d0e473Sopenharmony_ci} 74e5d0e473Sopenharmony_ci} // namespace Telephony 75e5d0e473Sopenharmony_ci} // namespace OHOS