Skip to content

Commit 5fa9529

Browse files
committed
Add operator== and operator!= for Settings.
1 parent 0f75878 commit 5fa9529

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed

firestore/integration_test_internal/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ set(FIREBASE_INTEGRATION_TEST_PORTABLE_TEST_SRCS
9595
src/query_test.cc
9696
src/sanity_test.cc
9797
src/server_timestamp_test.cc
98+
src/settings_test.cc
9899
src/smoke_test.cc
99100
src/source_test.cc
100101
src/transaction_test.cc
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// Copyright 2021 Google LLC
2+
3+
#include <future>
4+
#include <map>
5+
#include <string>
6+
7+
#include "firebase/firestore.h"
8+
#include "firestore_integration_test.h"
9+
10+
namespace firebase {
11+
namespace firestore {
12+
13+
using SettingsTest = FirestoreIntegrationTest;
14+
15+
TEST_F(SettingsTest, Equality) {
16+
int64_t five_mb = 5 * 1024 * 1024;
17+
int64_t six_mb = 6 * 1024 * 1024;
18+
19+
Settings settings1;
20+
settings1.set_host("foo");
21+
settings1.set_ssl_enabled(true);
22+
settings1.set_persistence_enabled(true);
23+
settings1.set_cache_size_bytes(five_mb);
24+
25+
Settings settings2;
26+
settings2.set_host("bar");
27+
settings2.set_ssl_enabled(true);
28+
settings2.set_persistence_enabled(true);
29+
settings2.set_cache_size_bytes(five_mb);
30+
31+
Settings settings3;
32+
settings3.set_host("foo");
33+
settings3.set_ssl_enabled(false);
34+
settings3.set_persistence_enabled(true);
35+
settings3.set_cache_size_bytes(five_mb);
36+
37+
Settings settings4;
38+
settings4.set_host("foo");
39+
settings4.set_ssl_enabled(true);
40+
settings4.set_persistence_enabled(false);
41+
settings4.set_cache_size_bytes(five_mb);
42+
43+
Settings settings5;
44+
settings5.set_host("foo");
45+
settings5.set_ssl_enabled(true);
46+
settings5.set_persistence_enabled(true);
47+
settings5.set_cache_size_bytes(six_mb);
48+
49+
EXPECT_TRUE(settings1 == settings1);
50+
51+
EXPECT_FALSE(settings1 == settings2);
52+
EXPECT_FALSE(settings1 == settings3);
53+
EXPECT_FALSE(settings1 == settings4);
54+
EXPECT_FALSE(settings1 == settings5);
55+
EXPECT_FALSE(settings2 == settings3);
56+
EXPECT_FALSE(settings2 == settings4);
57+
EXPECT_FALSE(settings2 == settings5);
58+
EXPECT_FALSE(settings3 == settings4);
59+
EXPECT_FALSE(settings3 == settings5);
60+
EXPECT_FALSE(settings4 == settings5);
61+
62+
EXPECT_TRUE(settings1 != settings2);
63+
EXPECT_TRUE(settings1 != settings3);
64+
EXPECT_TRUE(settings1 != settings4);
65+
EXPECT_TRUE(settings1 != settings5);
66+
EXPECT_TRUE(settings2 != settings3);
67+
EXPECT_TRUE(settings2 != settings4);
68+
EXPECT_TRUE(settings2 != settings5);
69+
EXPECT_TRUE(settings3 != settings4);
70+
EXPECT_TRUE(settings3 != settings5);
71+
EXPECT_TRUE(settings4 != settings5);
72+
}
73+
} // namespace firestore
74+
} // namespace firebase

firestore/src/include/firebase/firestore/settings.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,19 @@ class Settings final {
228228
#endif
229229
};
230230

231+
/** Checks `lhs` and `rhs` for equality. */
232+
inline bool operator==(const Settings& lhs, const Settings& rhs) {
233+
return lhs.host() == rhs.host() &&
234+
lhs.is_ssl_enabled() == rhs.is_ssl_enabled() &&
235+
lhs.is_persistence_enabled() == rhs.is_persistence_enabled() &&
236+
lhs.cache_size_bytes() == rhs.cache_size_bytes();
237+
}
238+
239+
/** Checks `lhs` and `rhs` for inequality. */
240+
inline bool operator!=(const Settings& lhs, const Settings& rhs) {
241+
return !(lhs == rhs);
242+
}
243+
231244
} // namespace firestore
232245
} // namespace firebase
233246

0 commit comments

Comments
 (0)