public void SplitValuesTest_StringEmpty_ReturnEmpty() { SplitValues split = new SplitValues(delimeter); var values = split.Split(string.Empty); Assert.AreEqual(0, values.Count()); }
public void SplitValuesTest_OneValue_ReturnValue() { SplitValues split = new SplitValues(delimeter); var values = split.Split("shoes"); Assert.AreEqual(1, values.Count()); Assert.AreEqual("shoes", values.ElementAt(0)); }
public void SplitValuesTest_TwoValues_ReturnValues() { SplitValues split = new SplitValues(delimeter); var values = split.Split("shoes|sandals"); Assert.AreEqual(2, values.Count()); Assert.AreEqual("shoes", values.ElementAt(0)); Assert.AreEqual("sandals", values.ElementAt(1)); }
public void SplitValuesTest_TwoValuesWrongDelimeterDiv_ThrowException() { SplitValues split = new SplitValues(delimeter); var values = split.Split("shoes,sandals"); }
public async Task <List <FilePath> > GetFilesAsync(DirectoryPath directory) { await Task.Delay(1); var startDirectory = directory.Clone().MakeAbsolute(); if (!IsValueOk) { return(new List <FilePath>()); } var files = new List <FilePath>(); var matches = SplitValues.Last().Split(',').Select(s => new Regex(WildcardToRegex(s))); // multiples file mask seperate by , // *.cs,*.h,*.md var searchDirectories = new List <DirectoryPath>(); if (SplitValues.Count > 1) { searchDirectories = SearchDirectories(true, startDirectory, SplitValues.Take(SplitValues.Count() - 1).ToList()); } else { searchDirectories.Add(startDirectory); } #if NETSTANDARD1_6 foreach (var searchDirectory in searchDirectories) { var localFiles = Directory.GetFiles(searchDirectory, "*").Select(f => new FilePath(f)).ToList(); var matchFiles = new List <FilePath>(); foreach (var file in localFiles) { foreach (var match in matches) { if (match.IsMatch(file.FileName)) { matchFiles.Add(file); break; } } } lock (files) files.AddRange(matchFiles); } ; #else Parallel.ForEach(searchDirectories, searchDirectory => { var localFiles = Directory.GetFiles(searchDirectory, "*").Select(f => new FilePath(f)).ToList(); var matchFiles = new List <FilePath>(); foreach (var file in localFiles) { foreach (var match in matches) { if (match.IsMatch(file.FileName)) { matchFiles.Add(file); break; } } } lock (files) files.AddRange(matchFiles); }); #endif return(files); }