blob: 7195a3a47ac34711e33de237de2468074dc776c8 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/value_store/value_store_change.h"
#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::Value;
namespace value_store {
TEST(ValueStoreChangeTest, ToValue) {
ValueStoreChangeList changes;
changes.push_back(ValueStoreChange("foo", absl::nullopt, base::Value("bar")));
changes.push_back(ValueStoreChange("baz", base::Value("qux"), absl::nullopt));
base::Value expected(base::Value::Type::DICTIONARY);
base::Value expected_foo(base::Value::Type::DICTIONARY);
base::Value expected_baz(base::Value::Type::DICTIONARY);
expected_foo.SetStringKey("newValue", "bar");
expected_baz.SetStringKey("oldValue", "qux");
expected.SetKey("foo", std::move(expected_foo));
expected.SetKey("baz", std::move(expected_baz));
EXPECT_EQ(expected, ValueStoreChange::ToValue(std::move(changes)));
}
} // namespace value_store