|
1 | 1 | using System.Collections.Generic; |
2 | 2 | using System.Globalization; |
3 | 3 | using System.Linq; |
| 4 | +using System.Reflection; |
4 | 5 |
|
5 | 6 | namespace System.IO.Abstractions.TestingHelpers |
6 | 7 | { |
@@ -190,7 +191,40 @@ public void AddDirectory(string path) |
190 | 191 | } |
191 | 192 | } |
192 | 193 |
|
193 | | - public void RemoveFile(string path) |
| 194 | + public void AddFileFromEmbeddedResource(string path, Assembly resourceAssembly, string embeddedResourcePath) |
| 195 | + { |
| 196 | + using (var embeddedResourceStream = resourceAssembly.GetManifestResourceStream(embeddedResourcePath)) |
| 197 | + { |
| 198 | + if (embeddedResourceStream == null) |
| 199 | + { |
| 200 | + throw new Exception("Resource not found in assembly"); |
| 201 | + } |
| 202 | + |
| 203 | + using (var streamReader = new BinaryReader(embeddedResourceStream)) |
| 204 | + { |
| 205 | + var fileData = streamReader.ReadBytes((int)embeddedResourceStream.Length); |
| 206 | + AddFile(path, new MockFileData(fileData)); |
| 207 | + } |
| 208 | + } |
| 209 | + } |
| 210 | + |
| 211 | + public void AddFilesFromEmbeddedNamespace(string path, Assembly resourceAssembly, string embeddedRresourcePath) |
| 212 | + { |
| 213 | + var matchingResources = resourceAssembly.GetManifestResourceNames().Where(f => f.StartsWith(embeddedRresourcePath)); |
| 214 | + foreach (var resource in matchingResources) |
| 215 | + { |
| 216 | + using (var embeddedResourceStream = resourceAssembly.GetManifestResourceStream(resource)) |
| 217 | + using (var streamReader = new BinaryReader(embeddedResourceStream)) |
| 218 | + { |
| 219 | + var fileName = resource.Substring(embeddedRresourcePath.Length + 1); |
| 220 | + var fileData = streamReader.ReadBytes((int)embeddedResourceStream.Length); |
| 221 | + var filePath = Path.Combine(path, fileName); |
| 222 | + AddFile(filePath, new MockFileData(fileData)); |
| 223 | + } |
| 224 | + } |
| 225 | + } |
| 226 | + |
| 227 | + public void RemoveFile(string path) |
194 | 228 | { |
195 | 229 | path = FixPath(path); |
196 | 230 |
|
|
0 commit comments