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

#ifndef SMBFS_TEST_FILESYSTEM_H_
#define SMBFS_TEST_FILESYSTEM_H_

#include <sys/types.h>

#include <memory>
#include <string>

#include <base/callback.h>
#include <base/macros.h>

#include "smbfs/filesystem.h"

namespace smbfs {

// Test/fake filesystem for integration testing.
class TestFilesystem : public Filesystem {
 public:
  TestFilesystem(uid_t uid, gid_t gid);

  void Lookup(std::unique_ptr<EntryRequest> request,
              fuse_ino_t parent_inode,
              const std::string& name) override;
  void GetAttr(std::unique_ptr<AttrRequest> request, fuse_ino_t inode) override;

 private:
  const uid_t uid_;
  const gid_t gid_;

  DISALLOW_COPY_AND_ASSIGN(TestFilesystem);
};

}  // namespace smbfs

#endif  // SMBFS_TEST_FILESYSTEM_H_
