single_topic_invalidation_set_unittest.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2014 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. #include "components/invalidation/public/single_topic_invalidation_set.h"
  5. #include <memory>
  6. #include "components/invalidation/impl/invalidation_test_util.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. namespace invalidation {
  9. namespace {
  10. class SingleTopicInvalidationSetTest : public testing::Test {
  11. public:
  12. SingleTopicInvalidationSetTest() = default;
  13. protected:
  14. const Topic kTopic = "one";
  15. };
  16. TEST_F(SingleTopicInvalidationSetTest, InsertionAndOrdering) {
  17. SingleTopicInvalidationSet l1;
  18. SingleTopicInvalidationSet l2;
  19. Invalidation inv0 = Invalidation::InitUnknownVersion(kTopic);
  20. Invalidation inv1 = Invalidation::Init(kTopic, 1, "one");
  21. Invalidation inv2 = Invalidation::Init(kTopic, 5, "five");
  22. l1.Insert(inv0);
  23. l1.Insert(inv1);
  24. l1.Insert(inv2);
  25. l2.Insert(inv1);
  26. l2.Insert(inv2);
  27. l2.Insert(inv0);
  28. ASSERT_EQ(3U, l1.GetSize());
  29. ASSERT_EQ(3U, l2.GetSize());
  30. auto it1 = l1.begin();
  31. auto it2 = l2.begin();
  32. EXPECT_THAT(inv0, Eq(*it1));
  33. EXPECT_THAT(inv0, Eq(*it2));
  34. it1++;
  35. it2++;
  36. EXPECT_THAT(inv1, Eq(*it1));
  37. EXPECT_THAT(inv1, Eq(*it2));
  38. it1++;
  39. it2++;
  40. EXPECT_THAT(inv2, Eq(*it1));
  41. EXPECT_THAT(inv2, Eq(*it2));
  42. it1++;
  43. it2++;
  44. EXPECT_TRUE(it1 == l1.end());
  45. EXPECT_TRUE(it2 == l2.end());
  46. }
  47. TEST_F(SingleTopicInvalidationSetTest, StartWithUnknownVersion) {
  48. SingleTopicInvalidationSet list;
  49. EXPECT_FALSE(list.StartsWithUnknownVersion());
  50. list.Insert(Invalidation::Init(kTopic, 1, "one"));
  51. EXPECT_FALSE(list.StartsWithUnknownVersion());
  52. list.Insert(Invalidation::InitUnknownVersion(kTopic));
  53. EXPECT_TRUE(list.StartsWithUnknownVersion());
  54. list.Clear();
  55. EXPECT_FALSE(list.StartsWithUnknownVersion());
  56. }
  57. } // namespace
  58. } // namespace invalidation