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 5 #ifndef SYNC_TEST_MOCK_INVALIDATION_H_ 6 #define SYNC_TEST_MOCK_INVALIDATION_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "sync/internal_api/public/base/invalidation_interface.h" 10 11 namespace syncer { 12 13 // An InvalidationInterface used by sync for testing. 14 // It does not support any form of acknowledgements. 15 class MockInvalidation : public InvalidationInterface { 16 public: 17 // Helpers to build new MockInvalidations. 18 static scoped_ptr<MockInvalidation> BuildUnknownVersion(); 19 static scoped_ptr<MockInvalidation> Build(int64 version, 20 const std::string& payload); 21 22 virtual ~MockInvalidation(); 23 24 // Implementation of InvalidationInterface. 25 virtual bool IsUnknownVersion() const OVERRIDE; 26 virtual const std::string& GetPayload() const OVERRIDE; 27 virtual int64 GetVersion() const OVERRIDE; 28 virtual void Acknowledge() OVERRIDE; 29 virtual void Drop() OVERRIDE; 30 31 protected: 32 MockInvalidation(bool is_unknown_version, 33 int64 version, 34 const std::string& payload); 35 36 // Whether or not this is an 'unknown version' invalidation. 37 const bool is_unknown_version_; 38 39 // The version of this invalidation. Valid only if !is_unknown_version_. 40 const int64 version_; 41 42 // The payload of this invalidation. Valid only if !is_unknown_version_. 43 const std::string payload_; 44 }; 45 46 } // namespace syncer 47 48 #endif // SYNC_TEST_MOCK_INVALIDATION_H_ 49