public override void WriteAllText(string fileName, string content, string key) { if (!AllowOverwrite[key]) { return; } if (RunInMemory[key]) { if (!Exists(fileName, key)) { if (AllowOverwrite[key]) { InMemoryFileSystem.Add(fileName, content); } } if (AllowOverwrite[key]) { InMemoryFileSystem[fileName] = content; } return; } File.WriteAllText(fileName, content); }
public void TestModifyFile_InvokesProcessor() { const string input = @"{ ""file"": [ ""test1.html"", ""test2.html"" ], ""template"": [""templates/**.html""], ""content"": [""**.html""] } "; var fileSystem = new InMemoryFileSystem(new[] { "test1.html", "test2.html", "templates/tmpl1.html", "templates/tmpl2.html" }); const string filePath = "templates/tmpl3.html"; const string filePath2 = "content.html"; var result = Project.FromFile(input, fileSystem); var processor = new Mock<IProjectObserver>(MockBehavior.Strict); processor.Setup(f => f.NotifyItemAdded(result, It.Is<FileProjectItem>(i => i.FileInfo.FilePath.ToString() == filePath && i.Identifier.Kind == "template"))); processor.Setup(f => f.NotifyItemAdded(result, It.Is<FileProjectItem>(i => i.FileInfo.FilePath.ToString() == filePath && i.Identifier.Kind == "content"))); processor.Setup(f => f.NotifyItemAdded(result, It.Is<FileProjectItem>(i => i.FileInfo.FilePath.ToString() == filePath2 && i.Identifier.Kind == "content"))); processor.Setup(f => f.NotifyItemRemoved(result, It.Is<FileProjectItem>(i => i.FileInfo.FilePath.ToString() == filePath2 && i.Identifier.Kind == "content"))); result.AddObserver(processor.Object); fileSystem.Add(filePath); // Not included file fileSystem.Add("templates/test.json"); fileSystem.Add(filePath2); fileSystem.RemoveFile(PathInfo.Create(filePath2)); processor.VerifyAll(); }