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(); }); }