1// Copyright 2015 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <string>
6
7#include <brillo/any.h>
8#include <brillo/variant_dictionary.h>
9#include <gtest/gtest.h>
10
11using brillo::VariantDictionary;
12using brillo::GetVariantValueOrDefault;
13
14TEST(VariantDictionary, GetVariantValueOrDefault) {
15  VariantDictionary dictionary;
16  dictionary.emplace("a", 1);
17  dictionary.emplace("b", "string");
18
19  // Test values that are present in the VariantDictionary.
20  EXPECT_EQ(1, GetVariantValueOrDefault<int>(dictionary, "a"));
21  EXPECT_EQ("string", GetVariantValueOrDefault<const char*>(dictionary, "b"));
22
23  // Test that missing keys result in defaults.
24  EXPECT_EQ("", GetVariantValueOrDefault<std::string>(dictionary, "missing"));
25  EXPECT_EQ(0, GetVariantValueOrDefault<int>(dictionary, "missing"));
26}
27