| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "sync/notifier/object_id_invalidation_map.h" |
| |
| #include "google/cacheinvalidation/types.pb.h" |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace syncer { |
| |
| namespace { |
| |
| class ObjectIdInvalidationMapTest : public testing::Test { |
| public: |
| ObjectIdInvalidationMapTest() |
| : kIdOne(ipc::invalidation::ObjectSource::TEST, "one"), |
| kIdTwo(ipc::invalidation::ObjectSource::TEST, "two"), |
| kInv1(Invalidation::Init(kIdOne, 10, "ten")) { |
| set1.insert(kIdOne); |
| set2.insert(kIdTwo); |
| all_set.insert(kIdOne); |
| all_set.insert(kIdTwo); |
| |
| one_invalidation.Insert(kInv1); |
| invalidate_all = ObjectIdInvalidationMap::InvalidateAll(all_set); |
| } |
| |
| protected: |
| const invalidation::ObjectId kIdOne; |
| const invalidation::ObjectId kIdTwo; |
| const Invalidation kInv1; |
| |
| ObjectIdSet set1; |
| ObjectIdSet set2; |
| ObjectIdSet all_set; |
| ObjectIdInvalidationMap empty; |
| ObjectIdInvalidationMap one_invalidation; |
| ObjectIdInvalidationMap invalidate_all; |
| }; |
| |
| TEST_F(ObjectIdInvalidationMapTest, Empty) { |
| EXPECT_TRUE(empty.Empty()); |
| EXPECT_FALSE(one_invalidation.Empty()); |
| EXPECT_FALSE(invalidate_all.Empty()); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, Equality) { |
| ObjectIdInvalidationMap empty2; |
| EXPECT_TRUE(empty == empty2); |
| |
| ObjectIdInvalidationMap one_invalidation2; |
| one_invalidation2.Insert(kInv1); |
| EXPECT_TRUE(one_invalidation == one_invalidation2); |
| |
| EXPECT_FALSE(empty == invalidate_all); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, GetObjectIds) { |
| EXPECT_EQ(ObjectIdSet(), empty.GetObjectIds()); |
| EXPECT_EQ(set1, one_invalidation.GetObjectIds()); |
| EXPECT_EQ(all_set, invalidate_all.GetObjectIds()); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, GetSubsetWithObjectIds) { |
| EXPECT_TRUE(empty.GetSubsetWithObjectIds(set1).Empty()); |
| |
| EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(set1) == |
| one_invalidation); |
| EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(all_set) == |
| one_invalidation); |
| EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(set2).Empty()); |
| |
| EXPECT_TRUE(invalidate_all.GetSubsetWithObjectIds(ObjectIdSet()).Empty()); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, SerializeEmpty) { |
| scoped_ptr<base::ListValue> value = empty.ToValue(); |
| ASSERT_TRUE(value.get()); |
| ObjectIdInvalidationMap deserialized; |
| deserialized.ResetFromValue(*value.get()); |
| EXPECT_TRUE(empty == deserialized); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, SerializeOneInvalidation) { |
| scoped_ptr<base::ListValue> value = one_invalidation.ToValue(); |
| ASSERT_TRUE(value.get()); |
| ObjectIdInvalidationMap deserialized; |
| deserialized.ResetFromValue(*value.get()); |
| EXPECT_TRUE(one_invalidation == deserialized); |
| } |
| |
| TEST_F(ObjectIdInvalidationMapTest, SerializeInvalidateAll) { |
| scoped_ptr<base::ListValue> value = invalidate_all.ToValue(); |
| ASSERT_TRUE(value.get()); |
| ObjectIdInvalidationMap deserialized; |
| deserialized.ResetFromValue(*value.get()); |
| EXPECT_TRUE(invalidate_all == deserialized); |
| } |
| |
| } // namespace |
| |
| } // namespace syncer |