// 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 value = empty.ToValue(); ASSERT_TRUE(value.get()); ObjectIdInvalidationMap deserialized; deserialized.ResetFromValue(*value.get()); EXPECT_TRUE(empty == deserialized); } TEST_F(ObjectIdInvalidationMapTest, SerializeOneInvalidation) { scoped_ptr 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 value = invalidate_all.ToValue(); ASSERT_TRUE(value.get()); ObjectIdInvalidationMap deserialized; deserialized.ResetFromValue(*value.get()); EXPECT_TRUE(invalidate_all == deserialized); } } // namespace } // namespace syncer