Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1345)

Side by Side Diff: sync/internal_api/public/base/enum_set_unittest.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium 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 "sync/internal_api/public/base/enum_set.h"
6
7 #include <stddef.h>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace syncer {
12 namespace {
13
14 enum TestEnum {
15 TEST_0,
16 TEST_MIN = TEST_0,
17 TEST_1,
18 TEST_2,
19 TEST_3,
20 TEST_4,
21 TEST_MAX = TEST_4,
22 TEST_5
23 };
24
25 typedef EnumSet<TestEnum, TEST_MIN, TEST_MAX> TestEnumSet;
26
27 class EnumSetTest : public ::testing::Test {};
28
29 TEST_F(EnumSetTest, ClassConstants) {
30 TestEnumSet enums;
31 EXPECT_EQ(TEST_MIN, TestEnumSet::kMinValue);
32 EXPECT_EQ(TEST_MAX, TestEnumSet::kMaxValue);
33 EXPECT_EQ(static_cast<size_t>(5), TestEnumSet::kValueCount);
34 }
35
36 TEST_F(EnumSetTest, DefaultConstructor) {
37 const TestEnumSet enums;
38 EXPECT_TRUE(enums.Empty());
39 EXPECT_EQ(static_cast<size_t>(0), enums.Size());
40 EXPECT_FALSE(enums.Has(TEST_0));
41 EXPECT_FALSE(enums.Has(TEST_1));
42 EXPECT_FALSE(enums.Has(TEST_2));
43 EXPECT_FALSE(enums.Has(TEST_3));
44 EXPECT_FALSE(enums.Has(TEST_4));
45 }
46
47 TEST_F(EnumSetTest, OneArgConstructor) {
48 const TestEnumSet enums(TEST_3);
49 EXPECT_FALSE(enums.Empty());
50 EXPECT_EQ(static_cast<size_t>(1), enums.Size());
51 EXPECT_FALSE(enums.Has(TEST_0));
52 EXPECT_FALSE(enums.Has(TEST_1));
53 EXPECT_FALSE(enums.Has(TEST_2));
54 EXPECT_TRUE(enums.Has(TEST_3));
55 EXPECT_FALSE(enums.Has(TEST_4));
56 }
57
58 TEST_F(EnumSetTest, TwoArgConstructor) {
59 const TestEnumSet enums(TEST_3, TEST_1);
60 EXPECT_FALSE(enums.Empty());
61 EXPECT_EQ(static_cast<size_t>(2), enums.Size());
62 EXPECT_FALSE(enums.Has(TEST_0));
63 EXPECT_TRUE(enums.Has(TEST_1));
64 EXPECT_FALSE(enums.Has(TEST_2));
65 EXPECT_TRUE(enums.Has(TEST_3));
66 EXPECT_FALSE(enums.Has(TEST_4));
67 }
68
69 TEST_F(EnumSetTest, ThreeArgConstructor) {
70 const TestEnumSet enums(TEST_3, TEST_1, TEST_0);
71 EXPECT_FALSE(enums.Empty());
72 EXPECT_EQ(static_cast<size_t>(3), enums.Size());
73 EXPECT_TRUE(enums.Has(TEST_0));
74 EXPECT_TRUE(enums.Has(TEST_1));
75 EXPECT_FALSE(enums.Has(TEST_2));
76 EXPECT_TRUE(enums.Has(TEST_3));
77 EXPECT_FALSE(enums.Has(TEST_4));
78 }
79
80 TEST_F(EnumSetTest, All) {
81 const TestEnumSet enums(TestEnumSet::All());
82 EXPECT_FALSE(enums.Empty());
83 EXPECT_EQ(static_cast<size_t>(5), enums.Size());
84 EXPECT_TRUE(enums.Has(TEST_0));
85 EXPECT_TRUE(enums.Has(TEST_1));
86 EXPECT_TRUE(enums.Has(TEST_2));
87 EXPECT_TRUE(enums.Has(TEST_3));
88 EXPECT_TRUE(enums.Has(TEST_4));
89 }
90
91 TEST_F(EnumSetTest, Put) {
92 TestEnumSet enums(TEST_3);
93 enums.Put(TEST_2);
94 EXPECT_EQ(TestEnumSet(TEST_2, TEST_3), enums);
95 enums.Put(TEST_4);
96 EXPECT_EQ(TestEnumSet(TEST_2, TEST_3, TEST_4), enums);
97 }
98
99 TEST_F(EnumSetTest, PutAll) {
100 TestEnumSet enums(TEST_3, TEST_4);
101 enums.PutAll(TestEnumSet(TEST_2, TEST_3));
102 EXPECT_EQ(TestEnumSet(TEST_2, TEST_3, TEST_4), enums);
103 }
104
105 TEST_F(EnumSetTest, RetainAll) {
106 TestEnumSet enums(TEST_3, TEST_4);
107 enums.RetainAll(TestEnumSet(TEST_2, TEST_3));
108 EXPECT_EQ(TestEnumSet(TEST_3), enums);
109 }
110
111 TEST_F(EnumSetTest, Remove) {
112 TestEnumSet enums(TEST_3, TEST_4);
113 enums.Remove(TEST_0);
114 enums.Remove(TEST_2);
115 EXPECT_EQ(TestEnumSet(TEST_3, TEST_4), enums);
116 enums.Remove(TEST_3);
117 EXPECT_EQ(TestEnumSet(TEST_4), enums);
118 enums.Remove(TEST_4);
119 enums.Remove(TEST_5);
120 EXPECT_TRUE(enums.Empty());
121 }
122
123 TEST_F(EnumSetTest, RemoveAll) {
124 TestEnumSet enums(TEST_3, TEST_4);
125 enums.RemoveAll(TestEnumSet(TEST_2, TEST_3));
126 EXPECT_EQ(TestEnumSet(TEST_4), enums);
127 }
128
129 TEST_F(EnumSetTest, Clear) {
130 TestEnumSet enums(TEST_3, TEST_4);
131 enums.Clear();
132 EXPECT_TRUE(enums.Empty());
133 }
134
135 TEST_F(EnumSetTest, Has) {
136 const TestEnumSet enums(TEST_3, TEST_4);
137 EXPECT_FALSE(enums.Has(TEST_0));
138 EXPECT_FALSE(enums.Has(TEST_1));
139 EXPECT_FALSE(enums.Has(TEST_2));
140 EXPECT_TRUE(enums.Has(TEST_3));
141 EXPECT_TRUE(enums.Has(TEST_4));
142 EXPECT_FALSE(enums.Has(TEST_5));
143 }
144
145 TEST_F(EnumSetTest, HasAll) {
146 const TestEnumSet enums1(TEST_3, TEST_4);
147 const TestEnumSet enums2(TEST_2, TEST_3);
148 const TestEnumSet enums3 = Union(enums1, enums2);
149 EXPECT_TRUE(enums1.HasAll(enums1));
150 EXPECT_FALSE(enums1.HasAll(enums2));
151 EXPECT_FALSE(enums1.HasAll(enums3));
152
153 EXPECT_FALSE(enums2.HasAll(enums1));
154 EXPECT_TRUE(enums2.HasAll(enums2));
155 EXPECT_FALSE(enums2.HasAll(enums3));
156
157 EXPECT_TRUE(enums3.HasAll(enums1));
158 EXPECT_TRUE(enums3.HasAll(enums2));
159 EXPECT_TRUE(enums3.HasAll(enums3));
160 }
161
162 TEST_F(EnumSetTest, Iterators) {
163 const TestEnumSet enums1(TEST_3, TEST_4);
164 TestEnumSet enums2;
165 for (TestEnumSet::Iterator it = enums1.First(); it.Good(); it.Inc()) {
166 enums2.Put(it.Get());
167 }
168 EXPECT_EQ(enums2, enums1);
169 }
170
171 TEST_F(EnumSetTest, Union) {
172 const TestEnumSet enums1(TEST_3, TEST_4);
173 const TestEnumSet enums2(TEST_2, TEST_3);
174 const TestEnumSet enums3 = Union(enums1, enums2);
175
176 EXPECT_EQ(TestEnumSet(TEST_2, TEST_3, TEST_4), enums3);
177 }
178
179 TEST_F(EnumSetTest, Intersection) {
180 const TestEnumSet enums1(TEST_3, TEST_4);
181 const TestEnumSet enums2(TEST_2, TEST_3);
182 const TestEnumSet enums3 = Intersection(enums1, enums2);
183
184 EXPECT_EQ(TestEnumSet(TEST_3), enums3);
185 }
186
187 TEST_F(EnumSetTest, Difference) {
188 const TestEnumSet enums1(TEST_3, TEST_4);
189 const TestEnumSet enums2(TEST_2, TEST_3);
190 const TestEnumSet enums3 = Difference(enums1, enums2);
191
192 EXPECT_EQ(TestEnumSet(TEST_4), enums3);
193 }
194
195 } // namespace
196 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/public/base/enum_set.h ('k') | sync/internal_api/public/base/invalidation_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698