Example #1
0
        public void Should_resolve_paths_that_match_pattern_within_a_folder()
        {
            // Arrange
            Glob err        = null;
            var  sampleFile = new FileInfo(Path.GetTempFileName());
            var  directory  = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            // Act
            var case1 = ((Glob)"*.dll").ResolvePaths(directory).ToArray();
            var case2 = ((Glob)"../../../Tests/*.cs").ResolvePaths(directory).ToArray();
            var case3 = new Glob(sampleFile.Name).ResolvePaths("%TEMP%", expandVariables: true).ToArray();
            var case4 = ((Glob)sampleFile.FullName).ResolvePaths(directory).ToArray();
            var case5 = ((Glob)$"./TestData/*.txt").ResolvePaths(directory).ToArray();
            var case6 = ((Glob)$"{directory}\\*deps*").ResolvePaths(directory, SearchOption.TopDirectoryOnly).ToArray();
            var case7 = ((Glob)@"TestData\sample.txt").ResolvePaths(Path.GetDirectoryName(directory), SearchOption.AllDirectories).ToArray();

            if (sampleFile.Exists)
            {
                sampleFile.Delete();
            }

            // Assert
            case1.ShouldNotBeEmpty();
            case1.ShouldAllBe(x => x.EndsWith(".dll"));

            case2.ShouldNotBeEmpty();
            case2.ShouldAllBe(x => x.EndsWith(".cs"));

            case3.ShouldContain(sampleFile.FullName);

            case4.Length.ShouldBe(1);
            case4[0].ShouldBe(sampleFile.FullName);
            case5.ShouldNotBeEmpty();
            case6.Length.ShouldBe(1);
            case7.Length.ShouldBe(1);

            Should.Throw <ArgumentNullException>(() => { err.ResolvePaths().ToArray(); });
            Should.Throw <DirectoryNotFoundException>(() => { new Glob(sampleFile.Name).ResolvePaths("%TEMP%", expandVariables: false).ToArray(); });
        }