1/*
2 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/system_wrappers/include/data_log.h"
12
13#include <string>
14
15#include "testing/gtest/include/gtest/gtest.h"
16
17using ::webrtc::DataLog;
18
19TEST(TestDataLog, IntContainers) {
20  int c = 5;
21  webrtc::ValueContainer<int> v1(c);
22  c = 10;
23  webrtc::ValueContainer<int> v2(c);
24  std::string s1, s2;
25  v1.ToString(&s1);
26  v2.ToString(&s2);
27  ASSERT_EQ(s1, "5,");
28  ASSERT_EQ(s2, "10,");
29  v1 = v2;
30  v1.ToString(&s1);
31  ASSERT_EQ(s1, s2);
32}
33
34TEST(TestDataLog, DoubleContainers) {
35  double c = 3.5;
36  webrtc::ValueContainer<double> v1(c);
37  c = 10.3;
38  webrtc::ValueContainer<double> v2(c);
39  std::string s1, s2;
40  v1.ToString(&s1);
41  v2.ToString(&s2);
42  ASSERT_EQ(s1, "3.5,");
43  ASSERT_EQ(s2, "10.3,");
44  v1 = v2;
45  v1.ToString(&s1);
46  ASSERT_EQ(s1, s2);
47}
48
49TEST(TestDataLog, MultiValueContainers) {
50  int a[3] = {1, 2, 3};
51  int b[3] = {4, 5, 6};
52  webrtc::MultiValueContainer<int> m1(a, 3);
53  webrtc::MultiValueContainer<int> m2(b, 3);
54  webrtc::MultiValueContainer<int> m3(a, 3);
55  std::string s1, s2, s3;
56  m1.ToString(&s1);
57  m2.ToString(&s2);
58  ASSERT_EQ(s1, "1,2,3,");
59  ASSERT_EQ(s2, "4,5,6,");
60  m1 = m2;
61  m1.ToString(&s1);
62  ASSERT_EQ(s1, s2);
63  m3.ToString(&s3);
64  ASSERT_EQ(s3, "1,2,3,");
65}
66