/// <summary> /// Evaluates css for a group of files /// </summary> /// <param name="numberOfGroups"></param> /// <param name="directories"></param> /// <param name="specificGroup">Not zero indexed - 1 means group 1, 0 means all</param> public void Evaluate(int numberOfGroups, string[] directories, int specificGroup) { var groupedFilesViewModels = DirectoryGroupEvaluator.Evaluate(numberOfGroups, directories); var groupedResults = new List <List <CssEvaluationResult> >(); var i = 1; foreach (var fileList in groupedFilesViewModels) { if (specificGroup == 0 || i == specificGroup) { Ux.WriteLine(string.Format("Group{0} ({1} - {2})", i, fileList.StartDir, fileList.EndDir)); groupedResults.Add(CssStatsPresenter.Present(fileList.Files)); Ux.WriteLine(""); ScrollDown(null, null); } i++; } Ux.DisplayBoolOption("Store detailed CSS results to disk?", () => { i = 1; foreach (var resultGroup in groupedResults) { CssStatsStorageService.Store(resultGroup, string.Format("Group {0}", specificGroup > 0 ? specificGroup : i)); ScrollDown(null, null); i++; } //FolderPresenter.Present(Properties.Settings.Default.ResultsPath); }, null); Ux.WriteLine(""); }
public void GroupsShouldBeEqual() { var mockFolderperGroupEvaluator = new Mock<IFoldersPerGroupEvaluator>(); mockFolderperGroupEvaluator.Setup(x => x.Evaluate(It.IsAny<int>(), It.IsAny<int>())).Returns(3); var mockDirEvaluator = new Mock<IDirectoryDescendentFilesEvaluator>(); mockDirEvaluator.Setup(x => x.Evaluate(It.IsAny<string>())).Returns(new List<string> { "file1" }); var obj = new DirectoryGroupEvaluator(mockFolderperGroupEvaluator.Object, mockDirEvaluator.Object); var dirs = new[] { "dir1a", "dir1b", "dir1c", "dir2a", "dir2b", "dir2c", "dir3a", "dir3b", "dir3c", "dir4a", "dir4b", "dir4c" }; var result = obj.Evaluate(4, dirs); Assert.AreEqual(4, result.Count); Assert.AreEqual(3, result[0].Files.Count); Assert.AreEqual(3, result[1].Files.Count); Assert.AreEqual(3, result[2].Files.Count); Assert.AreEqual(3, result[3].Files.Count); }