2 * Copyright (C) 2016, The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
22 #include <gtest/gtest.h>
24 #include "wificond/scanning/offload/offload_callback.h"
25 #include "wificond/scanning/scan_result.h"
26 #include "wificond/tests/mock_offload_callback_handlers.h"
27 #include "wificond/tests/offload_test_utils.h"
29 using android::hardware::wifi::offload::V1_0::ScanResult;
30 using android::hardware::wifi::offload::V1_0::OffloadStatus;
31 using android::hardware::wifi::offload::V1_0::OffloadStatusCode;
32 using android::hardware::hidl_vec;
33 using testing::NiceMock;
38 class OffloadCallbackTest : public ::testing::Test {
40 virtual void SetUp() {
41 dummy_scan_results_ = OffloadTestUtils::createOffloadScanResults();
44 void TearDown() override { dummy_scan_results_.clear(); }
46 std::vector<ScanResult> dummy_scan_results_;
47 std::unique_ptr<OffloadCallback> offload_callback_;
48 std::unique_ptr<NiceMock<MockOffloadCallbackHandlers>> handlers_;
52 * Testing OffloadCallback to invoke the registered callback handler
53 * with the scan results when they are available
55 TEST_F(OffloadCallbackTest, checkScanResultSize) {
56 std::vector<ScanResult> scan_result;
57 handlers_.reset(new NiceMock<MockOffloadCallbackHandlers>());
58 ON_CALL(*handlers_, OnScanResultHandler(testing::_))
59 .WillByDefault(testing::Invoke(
60 [&scan_result](std::vector<ScanResult> scanResult) -> void {
61 scan_result = scanResult;
63 offload_callback_.reset(new OffloadCallback(handlers_.get()));
64 hidl_vec<ScanResult> offloadScanResult(dummy_scan_results_);
65 offload_callback_->onScanResult(offloadScanResult);
66 EXPECT_EQ(dummy_scan_results_.size(), scan_result.size());
70 * Testing OffloadCallback to invoke the registered error handler
72 TEST_F(OffloadCallbackTest, checkErrorStatus) {
73 OffloadStatus status_;
74 handlers_.reset(new NiceMock<MockOffloadCallbackHandlers>());
75 ON_CALL(*handlers_, OnErrorHandler(testing::_))
76 .WillByDefault(testing::Invoke(
77 [&status_](OffloadStatus status) -> void { status_ = status; }));
78 offload_callback_.reset(new OffloadCallback(handlers_.get()));
79 OffloadStatus status =
80 OffloadTestUtils::createOffloadStatus(OffloadStatusCode::ERROR);
81 offload_callback_->onError(status);
82 EXPECT_EQ(status_.code, OffloadStatusCode::ERROR);
85 } // namespace wificond
86 } // namespace android