static int Main(string[] args) { if (args.Length != 1) { Usage(); return -1; } string searchRoot = args[0]; if (!Directory.Exists(searchRoot)) { Console.WriteLine("Path '{0}' does not exist"); return -1; } var filesService = new RealFilesService(); var filesFinder = new FilesFinder(filesService); var sameFiles = filesFinder.FindWithSameContent(searchRoot); foreach (var sameFilesSet in sameFiles) { foreach (string fullPath in sameFilesSet) { Console.WriteLine(fullPath); } Console.WriteLine(); } return 0; }
public void SearchWithSameNames_InDirWithDistinctFiles_NoResults() { // Arrange var filesFinder = new FilesFinder(); // Act var result = filesFinder.SearchWithSameNames(Path.Combine(RootTestDir, "NoFilesWithSameName")); // Assert Assert.AreEqual(0, result.Count, "No files expected"); }
public void SearchWithSameNames_InEmptyDir_NoResults() { // Arrange var filesFinder = new FilesFinder(); // Act var result = filesFinder.SearchWithSameNames(Path.Combine(RootTestDir, "Empty")); // Assert Assert.AreEqual(0, result.Count, "No files expected in empty directory"); }
public ObservableCollection <FileGroup> GetGroupedFiles() { FilesFinder filesFinder = new FilesFinder(new ExtensionFilterCondition(Extension)); List <string> files = filesFinder.GetFiles(Path); FileGrouper fileGrouper = new FileGrouper(files); ObservableCollection <FileGroup> groups = fileGrouper.GetGroups(); return(groups); }
public void SearchWithSameNames_PassingNonExistingDirectory_RegistersError() { // Arrange var filesFinder = new FilesFinder(); // Act string nonExistingDir = Path.Combine(RootTestDir, "NonExisting"); filesFinder.SearchWithSameNames(nonExistingDir); // Assert Assert.AreEqual(1, filesFinder.GetLastErrors().Count, "Non existing directory error expected"); }
public void SearchWithSameNames_InDirWith2SameFiles_1Result() { // Arrange var filesFinder = new FilesFinder(); // Act var result = filesFinder.SearchWithSameNames(Path.Combine(RootTestDir, "HasFilesWithSameName")); // Assert Assert.AreEqual(1, result.Count); Assert.AreEqual("a.txt", result[0].FileName); Assert.AreEqual(2, result[0].Count); }
public void InEmptyDir_NoResults__MoqStub() { // Arrange var dirServiceStub = new Moq.Mock<IDirService>(); dirServiceStub.Setup(s => s.DirectoryExists("Empty")).Returns(true); var filesFinder = new FilesFinder(dirServiceStub.Object); // Act var result = filesFinder.SearchWithSameNames("Empty"); // Assert Assert.AreEqual(0, result.Count, "No files expected in empty directory"); }
public void InEmptyDir_NoResults__CustomStub() { // Arrange var dirService = new DirServiceStub(); dirService.DirectoryExistsResult = true; dirService.GetFilesResult = new string[0]; dirService.GetDirectoriesResult = new string[0]; var filesFinder = new FilesFinder(dirService); // Act var result = filesFinder.SearchWithSameNames("Empty"); // Assert Assert.AreEqual(0, result.Count, "No files expected in empty directory"); }
public void InDirWithDistinctFiles_NoResults() { // Arrange var dirServiceStub = new Moq.Mock<IDirService>(); dirServiceStub.Setup(s => s.DirectoryExists("A")).Returns(true); dirServiceStub.Setup(s => s.GetFiles("A")).Returns(new[] {@"A\1.txt", @"A\2.txt"}); var filesFinder = new FilesFinder(dirServiceStub.Object); // Act var result = filesFinder.SearchWithSameNames("A"); // Assert Assert.AreEqual(0, result.Count, "No files expected"); }
public void InDirWith2SameFiles_1Result() { // Arrange var dirServiceStub = new Moq.Mock<IDirService>(); dirServiceStub.Setup(s => s.DirectoryExists("A")).Returns(true); dirServiceStub.Setup(s => s.GetDirectories("A")).Returns(new[] {@"A\B"}); dirServiceStub.Setup(s => s.GetFiles("A")).Returns(new[] { @"A\1.txt", @"A\2.txt" }); dirServiceStub.Setup(s => s.DirectoryExists(@"A\B")).Returns(true); dirServiceStub.Setup(s => s.GetFiles(@"A\B")).Returns(new[] { @"A\B\1.txt" }); var filesFinder = new FilesFinder(dirServiceStub.Object); // Act var result = filesFinder.SearchWithSameNames("A"); // Assert Assert.AreEqual(1, result.Count); Assert.AreEqual("1.txt", result[0].FileName); Assert.AreEqual(2, result[0].Count); }
public void InDirWith2SameFilesButDifferentCase_1Result() { // Arrange var dirService = new DirServiceSmartStub(@" A\x.txt A\y.txt A\B\X.txt "); var filesFinder = new FilesFinder(dirService); // Act var result = filesFinder.SearchWithSameNames("A"); // Assert Assert.AreEqual(1, result.Count); Assert.AreEqual("x.txt", result[0].FileName); Assert.AreEqual(2, result[0].Count); }
public void PassingNull_ThrowsArgumentNullException() { var filesFinder = new FilesFinder(new DirServiceStub()); Assert.Throws<ArgumentNullException>(() => filesFinder.SearchWithSameNames(null)); }
public void TestFixtureSetUp() { _filesService = new RealFilesService(); _filesFinder = new FilesFinder(_filesService); }
public void PassingNonExistingDirectory_RegistersError__CustomStub() { // Arrange var dirService = new DirServiceStub(); dirService.DirectoryExistsResult = false; var filesFinder = new FilesFinder(dirService); // Act filesFinder.SearchWithSameNames("NonExisting"); // Assert Assert.AreEqual(1, filesFinder.GetLastErrors().Count, "Non existing directory error expected"); }
public void PassingNonExistingDirectory_RegistersError__MoqStub() { // Arrange var dirServiceStub = new Moq.Mock<IDirService>(); dirServiceStub.Setup(s => s.DirectoryExists("NonExisting")).Returns(false); var filesFinder = new FilesFinder(dirServiceStub.Object); // Act filesFinder.SearchWithSameNames("NonExisting"); // Assert Assert.AreEqual(1, filesFinder.GetLastErrors().Count, "Non existing directory error expected"); }
static void Main(string[] args) { var result = FilesFinder.DirectorySearch(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\40_Csharp", new List <string>() { "bin", "obj", "Altova", "AltovaXML", "AltovaText", "AltovaFunctions" }); var classfiles = result.Where(f => f.Extension == ".cs" && !f.Filename.StartsWith("Temp") && !f.Filename.StartsWith("Assemb") && !(f.Filename.StartsWith("MappingForm"))).ToList(); string path = @"C:\Users\Martin\Documents\Coding\MapForce_Automation\MergedContent.cs"; var usingDirectives = System.IO.File.ReadAllLines(path).Where(l => l.StartsWith("using ") && l.Contains("System")).ToList(); string[] split = new string[] { "using " }; for (int i = 0; i < usingDirectives.Count; i++) { usingDirectives[i] = usingDirectives[i].Split(split, StringSplitOptions.RemoveEmptyEntries)[0]; usingDirectives[i] = usingDirectives[i].Substring(0, usingDirectives[i].IndexOf(';')) + ".dll"; } usingDirectives.Clear(); usingDirectives.Add("System.dll"); usingDirectives.Add("System.Xml.dll"); usingDirectives.Add("mscorlib.dll"); usingDirectives.Add("WindowsBase.dll"); var assemblies = AppDomain.CurrentDomain .GetAssemblies() .Where(a => !a.IsDynamic) .Select(a => a.Location).ToList(); if (!assemblies.Any(a => a.ToUpper().EndsWith("SYSTEM.XML.DLL"))) { assemblies.Add("System.Xml.dll"); } if (!assemblies.Any(a => a.ToUpper().EndsWith("SYSTEM.DATA.DLL"))) { assemblies.Add(@"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.dll"); } assemblies.Add(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\Libs\Altova.dll"); assemblies.Add(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\Libs\AltovaFunctions.dll"); assemblies.Add(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\Libs\AltovaText.dll"); assemblies.Add(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\Libs\AltovaXML.dll"); assemblies.Add(@"C:\Users\Martin\Documents\Coding\MapForce_Automation\Libs\WindowsBase.dll"); CodeCompiler.MergeClassFiles(classfiles, path); var test = System.IO.File.ReadAllLines(path); var trimArray = new char[] { '\t', '\r', '\n' }; StringBuilder sb = new StringBuilder(); for (int i = 0; i < test.Length; i++) { var t = test[i].Trim(trimArray); if (t.Contains("public static bool Validate(string input, TypeInfo.TypeInfo info)")) { test[i] = test[i].Replace("TypeInfo.TypeInfo info", "Altova.TypeInfo.TypeInfo info"); } else if (t.Contains("TypeInfo.TypeInfo typeInfo;")) { test[i] = test[i].Replace("TypeInfo.TypeInfo typeInfo;", "Altova.TypeInfo.TypeInfo typeInfo;"); } else if (t.Contains("public SimpleType(TypeInfo.TypeInfo typeInfo)")) { test[i] = test[i].Replace("public SimpleType(TypeInfo.TypeInfo typeInfo)", "public SimpleType(Altova.TypeInfo.TypeInfo typeInfo)"); } sb.AppendLine(test[i]); } System.IO.File.WriteAllText(path, sb.ToString()); CodeCompiler.Compile(path, executable: false, referencedAssemblies: assemblies); //CodeCompiler.Compile(path, executable: false, referencedAssemblies: usingDirectives); //GetInputFiles(path); }
public void UnauthorizedAccessExceptionThrown_ErrorRegistered() { // Arrange var dirServiceStub = new Moq.Mock<IDirService>(); dirServiceStub.Setup(s => s.DirectoryExists(Moq.It.IsAny<string>())).Returns(true); dirServiceStub.Setup(s => s.GetDirectories("a")).Throws<UnauthorizedAccessException>(); var filesFinder = new FilesFinder(dirServiceStub.Object); // Act filesFinder.SearchWithSameNames("a"); // Assert Assert.AreEqual(1, filesFinder.GetLastErrors().Count); }
public void InDirWith2Plus2SameFiles_2Results() { // Arrange var dirService = new DirServiceSmartStub(@" a\1.txt a\2.txt a\b\1.txt a\b\2.txt a\b\c\2.txt "); var filesFinder = new FilesFinder(dirService); // Act var result = filesFinder.SearchWithSameNames("a"); // Assert Assert.AreEqual(2, result.Count); Assert.AreEqual("1.txt", result[0].FileName); Assert.AreEqual(2, result[0].Count); Assert.AreEqual("2.txt", result[1].FileName); Assert.AreEqual(3, result[1].Count); }