public static void clean_removes_empty_folders_in_output_directory_if_they_are_empty() { var mockFileSystem = GenerateMockFileSystem(); mockFileSystem.GetFileInfoMock = (path) => { var generalMock = new MockFileWrapper(path, Path.GetDirectoryName(path), new DateTime(1, 1, 1)); generalMock.ExistsMock = () => { return(true); }; generalMock.DeleteMock = () => { }; return(generalMock); }; var remainingFileCount = 2; mockFileSystem.GetFilesInDirectoryMock = (path, searchpattern, recursive) => { remainingFileCount--; if (remainingFileCount > 0) { return(new List <IFile>() { new MockFileWrapper("filetodelete", "filetodelete", new DateTime(1, 1, 1)) }); } return(new List <IFile>()); }; var deletedDirectory = string.Empty; mockFileSystem.DeleteDirectoryMock = (path) => { deletedDirectory = path; }; var codegenJob = new StubCodegenJob(OutputDirectory, mockFileSystem, new List <string>() { "TestSchema.schema" }, new List <string>() { Path.Combine("FolderToDelete", "TestOutput.h"), Path.Combine("FolderToDelete", "TestOutput.cpp") }); codegenJob.Clean(); Assert.That(mockFileSystem.GetFilesInDirectoryCallCount == 2); Assert.That(mockFileSystem.DeleteDirectoryCallCount == 1); Assert.That(deletedDirectory == Path.Combine(OutputDirectory, "FolderToDelete")); }
public static void clean_deletes_the_expected_files_on_disk() { var mockFileSystem = GenerateMockFileSystem(); var mockFileWrappers = new List <MockFileWrapper>(); mockFileSystem.GetFileInfoMock = (path) => { var generalMock = new MockFileWrapper(path, Path.GetDirectoryName(path), new DateTime(1, 1, 1)); generalMock.ExistsMock = () => { return(true); }; generalMock.DeleteMock = () => { }; mockFileWrappers.Add(generalMock); return(generalMock); }; mockFileSystem.GetFilesInDirectoryMock = (path, searchpattern, recursive) => { return(new List <IFile>() { new MockFileWrapper(path, Path.GetDirectoryName(path), new DateTime(1, 1, 1)) }); }; var codegenJob = new StubCodegenJob(OutputDirectory, mockFileSystem, new List <string>() { "TestSchema.schema" }, new List <string>() { "TestOutput.h", "TestOutput.cpp" }); codegenJob.Clean(); Assert.That(mockFileWrappers.Count == 2); Assert.That(mockFileWrappers.Any(file => file.CompletePath == Path.Combine(OutputDirectory, "TestOutput.h"))); Assert.That(mockFileWrappers.Any(file => file.CompletePath == Path.Combine(OutputDirectory, "TestOutput.cpp"))); foreach (var fileMock in mockFileWrappers) { Assert.That(fileMock.ExistsCallCount == 1); Assert.That(fileMock.DeleteCallCount == 1); } }