00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00038 #ifndef BLOCXX_FILE_SYSTEM_MOCK_OBJECT_HPP_INCLUDE_GUARD_
00039 #define BLOCXX_FILE_SYSTEM_MOCK_OBJECT_HPP_INCLUDE_GUARD_
00040 #include "blocxx/BLOCXX_config.h"
00041 #include "blocxx/CommonFwd.hpp"
00042 #include "blocxx/Types.hpp"
00043 #include "blocxx/FileSystem.hpp"
00044 #include <cstddef>
00045 #include <utility>
00046
00047 namespace BLOCXX_NAMESPACE
00048 {
00052 class FileSystemMockObject
00053 {
00054 public:
00055 virtual ~FileSystemMockObject();
00056 virtual File openFile(const String& path);
00057 virtual File createFile(const String& path);
00058 virtual File openOrCreateFile(const String& path);
00059 virtual File openForAppendOrCreateFile(const String& path);
00060 virtual File createTempFile(const String& dir);
00061 virtual File createTempFile(String& filePath, const String& dir);
00062 virtual int changeFileOwner(const String& filename,
00063 const UserId& userId);
00064 virtual bool exists(const String& path);
00065 #ifndef BLOCXX_WIN32
00066 virtual bool isExecutable(const String& path);
00067 #endif
00068 virtual bool canRead(const String& path);
00069 virtual bool canWrite(const String& path);
00070 #ifndef BLOCXX_WIN32
00071 virtual bool isLink(const String& path);
00072 #endif
00073 virtual bool isDirectory(const String& path);
00074 virtual bool changeDirectory(const String& path);
00075 #ifndef BLOCXX_WIN32
00076 virtual bool makeDirectory(const String& path, int mode=0777);
00077 #else
00078 virtual bool makeDirectory(const String& path, int mode=-1);
00079 #endif
00080 virtual bool getFileSize(const String& path, Int64& size);
00081 virtual UInt64 fileSize(FileHandle fh);
00082 virtual bool removeDirectory(const String& path);
00083 virtual bool removeFile(const String& path);
00084 virtual bool getDirectoryContents(const String& path,
00085 StringArray& dirEntries);
00086 virtual bool renameFile(const String& oldFileName,
00087 const String& newFileName);
00088 virtual size_t read(const FileHandle& hdl, void* bfr, size_t numberOfBytes,
00089 Int64 offset=-1L);
00090 virtual size_t write(FileHandle hdl, const void* bfr,
00091 size_t numberOfBytes, Int64 offset=-1L);
00092 virtual Int64 seek(const FileHandle& hdl, Int64 offset, int whence);
00093 virtual Int64 tell(const FileHandle& hdl);
00094 virtual void rewind(const FileHandle& hdl);
00095 virtual int close(const FileHandle& hdl);
00096 virtual int flush(FileHandle& hdl);
00097 virtual String getFileContents(const String& filename);
00098 virtual StringArray getFileLines(const String& filename);
00099 virtual String readSymbolicLink(const String& path);
00100 virtual String realPath(const String& path);
00101
00102 virtual std::pair<FileSystem::Path::ESecurity, String>
00103 security(String const & path, UserId uid);
00104
00105 virtual std::pair<FileSystem::Path::ESecurity, String> security(String const & path);
00106
00107 virtual std::pair<FileSystem::Path::ESecurity, String>
00108 security(String const & base_dir, String const & rel_path, UserId uid);
00109
00110 virtual std::pair<FileSystem::Path::ESecurity, String>
00111 security(String const & base_dir, String const & rel_path);
00112
00113 virtual String dirname(const String& filename);
00114 virtual String basename(const String& filename);
00115
00116 virtual String getCurrentWorkingDirectory();
00117
00118
00119 };
00120
00121 }
00122
00123
00124 #endif
00125
00126