Exemple #1
0
        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"));
        }
Exemple #2
0
        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);
            }
        }