1*1a96fba6SXin Li // Copyright 2015 The Chromium OS Authors. All rights reserved. 2*1a96fba6SXin Li // Use of this source code is governed by a BSD-style license that can be 3*1a96fba6SXin Li // found in the LICENSE file. 4*1a96fba6SXin Li 5*1a96fba6SXin Li #ifndef LIBBRILLO_BRILLO_STREAMS_MOCK_STREAM_H_ 6*1a96fba6SXin Li #define LIBBRILLO_BRILLO_STREAMS_MOCK_STREAM_H_ 7*1a96fba6SXin Li 8*1a96fba6SXin Li #include <gmock/gmock.h> 9*1a96fba6SXin Li 10*1a96fba6SXin Li #include <brillo/streams/stream.h> 11*1a96fba6SXin Li 12*1a96fba6SXin Li namespace brillo { 13*1a96fba6SXin Li 14*1a96fba6SXin Li // Mock Stream implementation for testing. 15*1a96fba6SXin Li class MockStream : public Stream { 16*1a96fba6SXin Li public: 17*1a96fba6SXin Li MockStream() = default; 18*1a96fba6SXin Li 19*1a96fba6SXin Li MOCK_METHOD(bool, IsOpen, (), (const, override)); 20*1a96fba6SXin Li MOCK_METHOD(bool, CanRead, (), (const, override)); 21*1a96fba6SXin Li MOCK_METHOD(bool, CanWrite, (), (const, override)); 22*1a96fba6SXin Li MOCK_METHOD(bool, CanSeek, (), (const, override)); 23*1a96fba6SXin Li MOCK_METHOD(bool, CanGetSize, (), (const, override)); 24*1a96fba6SXin Li 25*1a96fba6SXin Li MOCK_METHOD(uint64_t, GetSize, (), (const, override)); 26*1a96fba6SXin Li MOCK_METHOD(bool, SetSizeBlocking, (uint64_t, ErrorPtr*), (override)); 27*1a96fba6SXin Li MOCK_METHOD(uint64_t, GetRemainingSize, (), (const, override)); 28*1a96fba6SXin Li 29*1a96fba6SXin Li MOCK_METHOD(uint64_t, GetPosition, (), (const, override)); 30*1a96fba6SXin Li MOCK_METHOD(bool, Seek, (int64_t, Whence, uint64_t*, ErrorPtr*), (override)); 31*1a96fba6SXin Li 32*1a96fba6SXin Li MOCK_METHOD(bool, 33*1a96fba6SXin Li ReadAsync, 34*1a96fba6SXin Li (void*, 35*1a96fba6SXin Li size_t, 36*1a96fba6SXin Li const base::Callback<void(size_t)>&, 37*1a96fba6SXin Li const ErrorCallback&, 38*1a96fba6SXin Li ErrorPtr*), 39*1a96fba6SXin Li (override)); 40*1a96fba6SXin Li MOCK_METHOD( 41*1a96fba6SXin Li bool, 42*1a96fba6SXin Li ReadAllAsync, 43*1a96fba6SXin Li (void*, size_t, const base::Closure&, const ErrorCallback&, ErrorPtr*), 44*1a96fba6SXin Li (override)); 45*1a96fba6SXin Li MOCK_METHOD(bool, 46*1a96fba6SXin Li ReadNonBlocking, 47*1a96fba6SXin Li (void*, size_t, size_t*, bool*, ErrorPtr*), 48*1a96fba6SXin Li (override)); 49*1a96fba6SXin Li MOCK_METHOD(bool, 50*1a96fba6SXin Li ReadBlocking, 51*1a96fba6SXin Li (void*, size_t, size_t*, ErrorPtr*), 52*1a96fba6SXin Li (override)); 53*1a96fba6SXin Li MOCK_METHOD(bool, ReadAllBlocking, (void*, size_t, ErrorPtr*), (override)); 54*1a96fba6SXin Li 55*1a96fba6SXin Li MOCK_METHOD(bool, 56*1a96fba6SXin Li WriteAsync, 57*1a96fba6SXin Li (const void*, 58*1a96fba6SXin Li size_t, 59*1a96fba6SXin Li const base::Callback<void(size_t)>&, 60*1a96fba6SXin Li const ErrorCallback&, 61*1a96fba6SXin Li ErrorPtr*), 62*1a96fba6SXin Li (override)); 63*1a96fba6SXin Li MOCK_METHOD(bool, 64*1a96fba6SXin Li WriteAllAsync, 65*1a96fba6SXin Li (const void*, 66*1a96fba6SXin Li size_t, 67*1a96fba6SXin Li const base::Closure&, 68*1a96fba6SXin Li const ErrorCallback&, 69*1a96fba6SXin Li ErrorPtr*), 70*1a96fba6SXin Li (override)); 71*1a96fba6SXin Li MOCK_METHOD(bool, 72*1a96fba6SXin Li WriteNonBlocking, 73*1a96fba6SXin Li (const void*, size_t, size_t*, ErrorPtr*), 74*1a96fba6SXin Li (override)); 75*1a96fba6SXin Li MOCK_METHOD(bool, 76*1a96fba6SXin Li WriteBlocking, 77*1a96fba6SXin Li (const void*, size_t, size_t*, ErrorPtr*), 78*1a96fba6SXin Li (override)); 79*1a96fba6SXin Li MOCK_METHOD(bool, 80*1a96fba6SXin Li WriteAllBlocking, 81*1a96fba6SXin Li (const void*, size_t, ErrorPtr*), 82*1a96fba6SXin Li (override)); 83*1a96fba6SXin Li 84*1a96fba6SXin Li MOCK_METHOD(bool, FlushBlocking, (ErrorPtr*), (override)); 85*1a96fba6SXin Li MOCK_METHOD(bool, CloseBlocking, (ErrorPtr*), (override)); 86*1a96fba6SXin Li 87*1a96fba6SXin Li MOCK_METHOD(bool, 88*1a96fba6SXin Li WaitForData, 89*1a96fba6SXin Li (AccessMode, const base::Callback<void(AccessMode)>&, ErrorPtr*), 90*1a96fba6SXin Li (override)); 91*1a96fba6SXin Li MOCK_METHOD(bool, 92*1a96fba6SXin Li WaitForDataBlocking, 93*1a96fba6SXin Li (AccessMode, base::TimeDelta, AccessMode*, ErrorPtr*), 94*1a96fba6SXin Li (override)); 95*1a96fba6SXin Li 96*1a96fba6SXin Li private: 97*1a96fba6SXin Li DISALLOW_COPY_AND_ASSIGN(MockStream); 98*1a96fba6SXin Li }; 99*1a96fba6SXin Li 100*1a96fba6SXin Li } // namespace brillo 101*1a96fba6SXin Li 102*1a96fba6SXin Li #endif // LIBBRILLO_BRILLO_STREAMS_MOCK_STREAM_H_ 103