blob: 808f02c09216c9e650e1c5beb190075bda55f12d [file] [log] [blame]
[email protected]51e6efd2014-07-08 23:38:211// 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
11namespace syncer {
12
13// An InvalidationInterface used by sync for testing.
14// It does not support any form of acknowledgements.
15class 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_