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");
 }
示例#4
0
        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));
 }
示例#13
0
 public void TestFixtureSetUp()
 {
     _filesService = new RealFilesService();
     _filesFinder  = new FilesFinder(_filesService);
 }
 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");
 }
示例#17
0
        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);
        }