blob: 25392ee06a60b19565715b9f5616bec28f7b34c5 [file] [log] [blame]
// 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_