// Copyright 2017 Google Inc. All Rights Reserved. // // Unit tests for ValueMetric. #include #include "value_metric.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include "metrics.pb.h" #include "scoped_ptr.h" namespace wvcdm { namespace metrics { TEST(ValueMetricTest, StringValue) { ValueMetric metric; metric.Record("foo"); wvcdm::scoped_ptr metric_proto(metric.ToProto()); ASSERT_EQ("foo", metric_proto->string_value()); ASSERT_FALSE(metric_proto->has_error_code()); } TEST(ValueMetricTest, DoubleValue) { ValueMetric metric; metric.Record(42.0); wvcdm::scoped_ptr metric_proto(metric.ToProto()); ASSERT_EQ(42.0, metric_proto->double_value()); ASSERT_FALSE(metric_proto->has_error_code()); } TEST(ValueMetricTest, Int32Value) { ValueMetric metric; metric.Record(42); wvcdm::scoped_ptr metric_proto(metric.ToProto()); ASSERT_EQ(42, metric_proto->int_value()); ASSERT_FALSE(metric_proto->has_error_code()); } TEST(ValueMetricTest, Int64Value) { ValueMetric metric; metric.Record(42); wvcdm::scoped_ptr metric_proto(metric.ToProto()); ASSERT_EQ(42, metric_proto->int_value()); ASSERT_FALSE(metric_proto->has_error_code()); } TEST(ValueMetricTest, SetError) { ValueMetric metric; metric.Record(42); metric.SetError(7); wvcdm::scoped_ptr metric_proto(metric.ToProto()); ASSERT_EQ(7, metric_proto->error_code()); ASSERT_FALSE(metric_proto->has_int_value()); } } // namespace metrics } // namespace wvcdm