public void UsageTest() { var sourceComparison = new SourceComparison(); sourceComparison.Add(new MissingFileInProject("project")); sourceComparison.Add(new MissingFileInSource("source")); Assert.IsNotNull(sourceComparison.MissingFilesInProject); Assert.AreEqual(1, sourceComparison.MissingFilesInProject.Count()); var res = sourceComparison.MissingFilesInProject.FirstOrDefault(); Assert.IsNotNull(res); Assert.AreEqual("project", res.Path); Assert.IsTrue(res.ToString().Contains("project")); Assert.IsNotNull(sourceComparison.MissingFilesInSource); Assert.AreEqual(1, sourceComparison.MissingFilesInSource.Count()); var sourceMissing = sourceComparison.MissingFilesInSource.FirstOrDefault(); Assert.IsNotNull(sourceMissing); Assert.AreEqual("source", sourceMissing.Path); Assert.IsTrue(sourceMissing.ToString().Contains("source")); Assert.IsTrue(sourceComparison.ToString().Contains("source")); Assert.IsTrue(sourceComparison.ToString().Contains("project")); var lines = sourceComparison.ToString().Split('\n'); var lineNumber = lines.Length; if (lines.Last() == string.Empty) { lineNumber--; } Assert.AreEqual(2, lineNumber); }
public SourceComparison Compare(HashSet<string> itemsInCsProj, HashSet<string> sourcesInSourceFile) { var pathInCsProj = itemsInCsProj.ToDictionaryIgnoreDuplicates(x => x.ToLower().ToPlatformPath().Trim().RemoveDotPath(), x => x); var pathInSourceFile = sourcesInSourceFile.ToDictionaryIgnoreDuplicates( x => x.ToLower().ToPlatformPath().Trim().RemoveDotPath(), x => x); var comparison = new SourceComparison(); foreach (var item in pathInCsProj) { if (!pathInSourceFile.ContainsKey(item.Key)) { comparison.Add(new MissingFileInSource(item.Value)); } } foreach (var source in pathInSourceFile) { if (!pathInCsProj.ContainsKey(source.Key)) { comparison.Add(new MissingFileInProject(source.Value)); } } return comparison; }