private static void TransformSequences_AddSources(IEnumerable <File> files, IEnumerable <Method> methods, IDictionary <uint, CodeCoverageStringTextSource> sourceRepository) { if (files == null || !files.Any()) { return; } // Dictionary with stored source file names per module var filesDictionary = new Dictionary <string, uint>(); foreach (var file in files. Where(file => !String.IsNullOrWhiteSpace(file.FullPath) && !filesDictionary.ContainsKey(file.FullPath))) { var source = CodeCoverageStringTextSource.GetSource(file.FullPath); // never reurns null if (source.FileType == FileType.CSharp) { sourceRepository.Add(file.UniqueId, source); } filesDictionary.Add(file.FullPath, file.UniqueId); } foreach (var method in methods) { if (method.SequencePoints.Length != 0) { MapFileReferences(method.SequencePoints, filesDictionary); } if (method.BranchPoints.Length != 0) { MapFileReferences(method.BranchPoints, filesDictionary); } } }
public void WhenLoggerNotProvided_ExceptionThrown() { // arrange ILog logger = null; // act/assert Assert.Throws <ArgumentNullException>(() => CodeCoverageStringTextSource.GetSource("", logger)); }
public void GetSource() { var timeReference = DateTime.UtcNow; System.Threading.Thread.Sleep(100); string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid(); string cSharpFileName = fileName + ".cs"; string vBasicFileName = fileName + ".vb"; string[] lines = { "First line", "Second line", "Third line" }; // act on not existing file var source = CodeCoverageStringTextSource.GetSource(cSharpFileName); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.CSharp); Assert.True(source.FilePath == cSharpFileName); Assert.False(source.FileFound); Assert.True(source.FileTime == DateTime.MinValue); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.Now)); Assert.False(source.IsChanged(timeReference)); // arrange System.IO.File.WriteAllLines(cSharpFileName, lines); // act on existing file source = CodeCoverageStringTextSource.GetSource(cSharpFileName); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.CSharp); Assert.True(source.FilePath == cSharpFileName); Assert.True(source.FileFound); Assert.True(source.FileTime == System.IO.File.GetLastWriteTimeUtc(cSharpFileName)); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.Now)); Assert.True(source.IsChanged(timeReference)); // destroy temp file System.IO.File.Delete(cSharpFileName); // arrange System.IO.File.WriteAllLines(vBasicFileName, lines); // act on existing file source = CodeCoverageStringTextSource.GetSource(vBasicFileName); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.Unsupported); Assert.True(source.FilePath == vBasicFileName); Assert.True(source.FileFound); Assert.True(source.FileTime == System.IO.File.GetLastWriteTimeUtc(vBasicFileName)); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.Now)); Assert.True(source.IsChanged(timeReference)); // destroy temp file System.IO.File.Delete(vBasicFileName); }
public void GetSource() { var timeReference = DateTime.UtcNow; System.Threading.Thread.Sleep(100); string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid(); string cSharpFileName = fileName + ".cs"; string vBasicFileName = fileName + ".vb"; string[] lines = { "First line", "Second line", "Third line" }; var mockLog = new Mock <ILog>(); mockLog.Setup(x => x.InfoFormat(It.IsAny <string>())); // act on not existing file var source = CodeCoverageStringTextSource.GetSource(cSharpFileName, mockLog.Object); mockLog.Verify(x => x.InfoFormat($"Source file does not exist: {cSharpFileName}"), Times.Once()); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.CSharp); Assert.True(source.FilePath == cSharpFileName); Assert.False(source.FileFound); Assert.True(source.FileTime == DateTime.MinValue); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.UtcNow)); Assert.False(source.IsChanged(timeReference)); // arrange System.IO.File.WriteAllLines(cSharpFileName, lines); // act on existing file source = CodeCoverageStringTextSource.GetSource(cSharpFileName, mockLog.Object); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.CSharp); Assert.True(source.FilePath == cSharpFileName); Assert.True(source.FileFound); Assert.True(source.FileTime == System.IO.File.GetLastWriteTimeUtc(cSharpFileName)); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.UtcNow)); Assert.True(source.IsChanged(timeReference)); // destroy temp file System.IO.File.Delete(cSharpFileName); // arrange System.IO.File.WriteAllLines(vBasicFileName, lines); // act on existing file source = CodeCoverageStringTextSource.GetSource(vBasicFileName, mockLog.Object); // assert Assert.True(!ReferenceEquals(source, null)); Assert.True(source.FileType == FileType.Unsupported); Assert.True(source.FilePath == vBasicFileName); Assert.True(source.FileFound); Assert.True(source.FileTime == System.IO.File.GetLastWriteTimeUtc(vBasicFileName)); Assert.False(source.IsChanged(source.FileTime)); Assert.False(source.IsChanged(DateTime.MinValue)); Assert.False(source.IsChanged(DateTime.UtcNow)); Assert.True(source.IsChanged(timeReference)); // destroy temp file System.IO.File.Delete(vBasicFileName); }