| // Copyright 2015 The Weave Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef LIBWEAVE_SRC_COMMANDS_UNITTEST_UTILS_H_ | |
| #define LIBWEAVE_SRC_COMMANDS_UNITTEST_UTILS_H_ | |
| #include <memory> | |
| #include <string> | |
| #include <base/values.h> | |
| #include <gtest/gtest.h> | |
| #include <weave/test/unittest_utils.h> | |
| #include "src/commands/prop_types.h" | |
| #include "src/commands/prop_values.h" | |
| namespace weave { | |
| namespace test { | |
| template <typename T> | |
| std::unique_ptr<const PropValue> make_prop_value(const base::Value& value) { | |
| auto prop_type = PropType::Create(GetValueType<T>()); | |
| return prop_type->CreatePropValue(value, nullptr); | |
| } | |
| inline std::unique_ptr<const PropValue> make_int_prop_value(int value) { | |
| return make_prop_value<int>(base::FundamentalValue{value}); | |
| } | |
| inline std::unique_ptr<const PropValue> make_double_prop_value(double value) { | |
| return make_prop_value<double>(base::FundamentalValue{value}); | |
| } | |
| inline std::unique_ptr<const PropValue> make_bool_prop_value(bool value) { | |
| return make_prop_value<bool>(base::FundamentalValue{value}); | |
| } | |
| inline std::unique_ptr<const PropValue> make_string_prop_value( | |
| const std::string& value) { | |
| return make_prop_value<std::string>(base::StringValue{value}); | |
| } | |
| } // namespace test | |
| } // namespace weave | |
| #endif // LIBWEAVE_SRC_COMMANDS_UNITTEST_UTILS_H_ |