1 //
2 // Copyright 2015 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // BufferImpl_mock.h: Defines a mock of the BufferImpl class.
8 
9 #ifndef LIBANGLE_RENDERER_BUFFERIMPLMOCK_H_
10 #define LIBANGLE_RENDERER_BUFFERIMPLMOCK_H_
11 
12 #include "gmock/gmock.h"
13 
14 #include "libANGLE/Buffer.h"
15 #include "libANGLE/renderer/BufferImpl.h"
16 
17 namespace rx
18 {
19 class MockBufferImpl : public BufferImpl
20 {
21   public:
MockBufferImpl()22     MockBufferImpl() : BufferImpl(mMockState) {}
~MockBufferImpl()23     ~MockBufferImpl() { destructor(); }
24 
25     MOCK_METHOD5(
26         setData,
27         gl::Error(const gl::Context *, gl::BufferBinding, const void *, size_t, gl::BufferUsage));
28     MOCK_METHOD5(setSubData,
29                  gl::Error(const gl::Context *, gl::BufferBinding, const void *, size_t, size_t));
30     MOCK_METHOD5(
31         copySubData,
32         gl::Error(const gl::Context *contextImpl, BufferImpl *, GLintptr, GLintptr, GLsizeiptr));
33     MOCK_METHOD3(map, gl::Error(const gl::Context *contextImpl, GLenum, void **));
34     MOCK_METHOD5(mapRange,
35                  gl::Error(const gl::Context *contextImpl, size_t, size_t, GLbitfield, void **));
36     MOCK_METHOD2(unmap, gl::Error(const gl::Context *contextImpl, GLboolean *result));
37 
38     MOCK_METHOD6(getIndexRange,
39                  gl::Error(const gl::Context *, GLenum, size_t, size_t, bool, gl::IndexRange *));
40 
41     MOCK_METHOD0(destructor, void());
42 
43   protected:
44     gl::BufferState mMockState;
45 };
46 }
47 
48 #endif  // LIBANGLE_RENDERER_BUFFERIMPLMOCK_H_
49