1e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev/* 2e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * Copyright (C) 2016 The Android Open Source Project 3e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * 4e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * Licensed under the Apache License, Version 2.0 (the "License"); 5e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * you may not use this file except in compliance with the License. 6e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * You may obtain a copy of the License at 7e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * 8e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * http://www.apache.org/licenses/LICENSE-2.0 9e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * 10e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * Unless required by applicable law or agreed to in writing, software 11e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * distributed under the License is distributed on an "AS IS" BASIS, 12e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * See the License for the specific language governing permissions and 14e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev * limitations under the License. 15e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev */ 16e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 17e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev#include <gtest/gtest.h> 18e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 19c5344ac04c430486633521098fdb63887546a32aPavel Maltsev#include "vhal_v2_0/VehiclePropConfigIndex.h" 20e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 21e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev#include "VehicleHalTestUtils.h" 22e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 23e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevnamespace android { 24e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevnamespace hardware { 252579fb792b4d47555515459f372f63c4305ee2caPavel Maltsevnamespace automotive { 26e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevnamespace vehicle { 27e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevnamespace V2_0 { 28e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 29e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevnamespace { 30e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 31e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevclass PropConfigTest : public ::testing::Test { 32e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevprotected: 33e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev void SetUp() override { 34e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev configs.assign(std::begin(kVehicleProperties), 35e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev std::end(kVehicleProperties)); 36e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev } 37e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 38e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev void TearDown() override {} 39e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 40e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsevpublic: 41e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev std::vector<VehiclePropConfig> configs; 42e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev}; 43e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 44e2603e3d52dbd505cdda20a8111f45bf833d674aPavel MaltsevTEST_F(PropConfigTest, hasConfig) { 45e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev VehiclePropConfigIndex index(configs); 46e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 478e624b323c9808c6454cd2e76ffd3ca2ede5679cPavel Maltsev ASSERT_TRUE(index.hasConfig(toInt(VehicleProperty::HVAC_FAN_SPEED))); 488e624b323c9808c6454cd2e76ffd3ca2ede5679cPavel Maltsev ASSERT_TRUE(index.hasConfig(toInt(VehicleProperty::INFO_MAKE))); 498e624b323c9808c6454cd2e76ffd3ca2ede5679cPavel Maltsev ASSERT_TRUE(index.hasConfig(toInt(VehicleProperty::INFO_FUEL_CAPACITY))); 50e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 518e624b323c9808c6454cd2e76ffd3ca2ede5679cPavel Maltsev ASSERT_FALSE(index.hasConfig(toInt(VehicleProperty::INVALID))); 52e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} 53e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 54e2603e3d52dbd505cdda20a8111f45bf833d674aPavel MaltsevTEST_F(PropConfigTest, getAllConfig) { 55e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev VehiclePropConfigIndex index(configs); 56e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 57e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev std::vector<VehiclePropConfig> actualConfigs = index.getAllConfigs(); 58e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev ASSERT_EQ(configs.size(), actualConfigs.size()); 59e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 60e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev for (size_t i = 0; i < actualConfigs.size(); i++) { 61e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev ASSERT_EQ(toString(configs[i]), toString(actualConfigs[i])); 62e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev } 63e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} 64e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 65e2603e3d52dbd505cdda20a8111f45bf833d674aPavel MaltsevTEST_F(PropConfigTest, getConfigs) { 66e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev VehiclePropConfigIndex index(configs); 678e624b323c9808c6454cd2e76ffd3ca2ede5679cPavel Maltsev auto actualConfig = index.getConfig(toInt(VehicleProperty::HVAC_FAN_SPEED)); 68e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev ASSERT_EQ(toString(configs[1]), toString(actualConfig)); 69e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} 70e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 71e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} // namespace anonymous 72e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev 73e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} // namespace V2_0 74e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} // namespace vehicle 752579fb792b4d47555515459f372f63c4305ee2caPavel Maltsev} // namespace automotive 76e2603e3d52dbd505cdda20a8111f45bf833d674aPavel Maltsev} // namespace hardware 772579fb792b4d47555515459f372f63c4305ee2caPavel Maltsev} // namespace android 78