UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FileSystem.mock.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Common/FileSystem.h"
5#include "Tests/TestHelpers.h"
9#include "Misc/Paths.h"
10
11#if WITH_DEV_AUTOMATION_TESTS
12
13namespace BuildPatchServices
14{
15 class FMockFileSystem
16 : public IFileSystem
17 {
18 public:
26
27 public:
28 virtual TUniquePtr<FArchive> CreateFileReader(const TCHAR* Filename, EReadFlags ReadFlags = EReadFlags::None) const override
29 {
30 FScopeLock ScopeLock(&ThreadLock);
31 TUniquePtr<FArchive> Reader(new FMemoryReader(ReadFile));
32 RxCreateFileReader.Emplace(FStatsCollector::GetSeconds(), Reader.Get(), Filename, ReadFlags);
33 return Reader;
34 }
35
36 virtual TUniquePtr<FArchive> CreateFileWriter(const TCHAR* Filename, EWriteFlags WriteFlags = EWriteFlags::None) const override
37 {
38 FScopeLock ScopeLock(&ThreadLock);
39 TUniquePtr<FArchive> Writer(new FMemoryWriter(WriteFile));
40 RxCreateFileWriter.Emplace(FStatsCollector::GetSeconds(), Writer.Get(), Filename, WriteFlags);
41 return Writer;
42 }
43
44 virtual bool LoadFileToString(const TCHAR* Filename, FString& Contents) const override
45 {
46 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::LoadFileToString");
47 return false;
48 }
49
50 virtual bool SaveStringToFile(const TCHAR* Filename, const FString& Contents) const override
51 {
52 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::SaveStringToFile");
53 return false;
54 }
55
56 virtual bool DirectoryExists(const TCHAR* DirectoryPath) const override
57 {
58 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::DirectoryExists");
59 return false;
60 }
61
62 virtual bool MakeDirectory(const TCHAR* DirectoryPath) const override
63 {
64 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::MakeDirectory");
65 return false;
66 }
67
68 virtual bool DeleteFile(const TCHAR* Filename) const override
69 {
70 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::DeleteFile");
71 return false;
72 }
73
74 virtual bool MoveFile(const TCHAR* FileDest, const TCHAR* FileSource) const override
75 {
76 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::MoveFile");
77 return false;
78 }
79
80 virtual bool CopyFile(const TCHAR* FileDest, const TCHAR* FileSource) const override
81 {
82 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::CopyFile");
83 return false;
84 }
85
86 virtual bool GetFileSize(const TCHAR* Filename, int64& OutFileSize) const override
87 {
88 OutFileSize = -1;
89 if (FileSizes.Contains(Filename))
90 {
91 OutFileSize = FileSizes[Filename];
92 }
93 RxGetFileSize.Emplace(FStatsCollector::GetSeconds(), Filename, OutFileSize);
94 return OutFileSize >= 0;
95 }
96
97 virtual bool GetAttributes(const TCHAR* Filename, EAttributeFlags& OutFileAttributes) const override
98 {
99 OutFileAttributes = EAttributeFlags::None;
100 if (FileAttributes.Contains(Filename))
101 {
103 }
104 RxGetAttributes.Emplace(FStatsCollector::GetSeconds(), Filename, OutFileAttributes);
105 return true;
106 }
107
108 virtual bool GetTimeStamp(const TCHAR* Path, FDateTime& TimeStamp) const override
109 {
110 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::CopyFile");
111 return false;
112 }
113
114 virtual bool SetReadOnly(const TCHAR* Filename, bool bIsReadOnly) const override
115 {
116 RxSetReadOnly.Emplace(FStatsCollector::GetSeconds(), Filename, bIsReadOnly);
117 return true;
118 }
119
120 virtual bool SetCompressed(const TCHAR* Filename, bool bIsCompressed) const override
121 {
122 RxSetCompressed.Emplace(FStatsCollector::GetSeconds(), Filename, bIsCompressed);
123 return true;
124 }
125
126 virtual bool SetExecutable(const TCHAR* Filename, bool bIsExecutable) const override
127 {
128 RxSetExecutable.Emplace(FStatsCollector::GetSeconds(), Filename, bIsExecutable);
129 return true;
130 }
131
132 virtual bool FileExists(const TCHAR* Filename) const override
133 {
134 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::FileExists");
135 return true;
136 }
137
138 virtual void FindFiles(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension) const override
139 {
140 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::FindFiles");
141 return;
142 }
143
144 virtual void FindFilesRecursively(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension) const override
145 {
146 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::FindFilesRecursively");
147 return;
148 }
149
150 virtual void ParallelFindFilesRecursively(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension = nullptr, EAsyncExecution AsyncExecution = EAsyncExecution::ThreadPool) const override
151 {
152 FindFilesRecursively(FoundFiles, Directory, FileExtension);
153 }
154
155 virtual int64 GetAllowedBytesToWriteThrottledStorage(const TCHAR* DestinationPath = nullptr) const override
156 {
157 MOCK_FUNC_NOT_IMPLEMENTED("FMockFileSystem::GetAllowedBytesToWriteThrottledStorage");
158 return INT64_MAX;
159 }
160
161 public:
162 mutable FCriticalSection ThreadLock;
170 mutable TArray<uint8> ReadFile;
171 mutable TArray<uint8> WriteFile;
172 mutable TMap<FString, int64> FileSizes;
174 };
175}
176
177#endif //WITH_DEV_AUTOMATION_TESTS
EAsyncExecution
Definition Async.h:28
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition MemoryReader.h:17
Definition MemoryWriter.h:101
Definition ScopeLock.h:141
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition BuildPatchFileConstructor.h:28
bool WriteFile(void *p_os_file_mem, const void *p_data, int size)
@ MoveFile
Definition NetworkMessage.h:36
@ DeleteFile
Definition NetworkMessage.h:35
@ SetReadOnly
Definition NetworkMessage.h:37
@ CopyFile
Definition NetworkMessage.h:46
MINIMAL_WINDOWS_API BOOL WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
Definition DateTime.h:76
Definition Tuple.h:652