chromium/native_client_sdk/src/tests/nacl_io_test/mock_fs.h

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef TESTS_NACL_IO_TEST_MOCK_FS_H_
#define TESTS_NACL_IO_TEST_MOCK_FS_H_

#include "gmock/gmock.h"

#include "nacl_io/filesystem.h"

class MockFs : public nacl_io::Filesystem {
 public:
  typedef nacl_io::Error Error;
  typedef nacl_io::FsInitArgs FsInitArgs;
  typedef nacl_io::Path Path;
  typedef nacl_io::PepperInterface PepperInterface;
  typedef nacl_io::ScopedNode ScopedNode;
  typedef nacl_io::StringMap_t StringMap_t;

  MockFs();
  virtual ~MockFs();

  MOCK_METHOD1(Init, Error(const FsInitArgs&));
  MOCK_METHOD0(Destroy, void());
  MOCK_METHOD2(Access, Error(const Path&, int));
  MOCK_METHOD3(Open, Error(const Path&, int, ScopedNode*));
  MOCK_METHOD4(OpenWithMode, Error(const Path&, int, mode_t, ScopedNode*));
  MOCK_METHOD2(OpenResource, Error(const Path&, ScopedNode*));
  MOCK_METHOD1(Unlink, Error(const Path&));
  MOCK_METHOD2(Mkdir, Error(const Path&, int));
  MOCK_METHOD1(Rmdir, Error(const Path&));
  MOCK_METHOD1(Remove, Error(const Path&));
  MOCK_METHOD2(Rename, Error(const Path&, const Path&));
};

#endif  // TESTS_NACL_IO_TEST_MOCK_FS_H_