15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef TESTS_NACL_IO_TEST_MOCK_NODE_H_ 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TESTS_NACL_IO_TEST_MOCK_NODE_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "gmock/gmock.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "nacl_io/filesystem.h" 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "nacl_io/kernel_handle.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class MockNode : public nacl_io::Node { 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch typedef nacl_io::Error Error; 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) typedef nacl_io::HandleAttr HandleAttr; 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) typedef nacl_io::ScopedNode ScopedNode; 18ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) explicit MockNode(nacl_io::Filesystem*); 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual ~MockNode(); 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD1(Init, Error(int)); 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(Destroy, void()); 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(FSync, Error()); 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD1(FTruncate, Error(off_t)); 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD4(GetDents, Error(size_t, struct dirent*, size_t, int*)); 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD1(GetStat, Error(struct stat*)); 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) MOCK_METHOD2(Ioctl, Error(int, va_list)); 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) MOCK_METHOD4(Read, Error(const HandleAttr&, void*, size_t, int*)); 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) MOCK_METHOD4(Write, Error(const HandleAttr&, const void*, size_t, int*)); 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD6(MMap, Error(void*, size_t, int, int, size_t, void**)); 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(GetLinks, int()); 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(GetMode, int()); 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(GetType, int()); 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MOCK_METHOD1(GetSize, Error(off_t*)); 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(IsaDir, bool()); 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(IsaFile, bool()); 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MOCK_METHOD0(Isatty, Error()); 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(ChildCount, int()); 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) MOCK_METHOD2(AddChild, Error(const std::string&, const ScopedNode&)); 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD1(RemoveChild, Error(const std::string&)); 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) MOCK_METHOD2(FindChild, Error(const std::string&, ScopedNode*)); 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(Link, void()); 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch MOCK_METHOD0(Unlink, void()); 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif // TESTS_NACL_IO_TEST_MOCK_NODE_H_ 48