| // 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_ |