/// <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 View(List <string> files) { if (PathExistenceEvaluator.Evaluate(Properties.Settings.Default.InspectionPath)) { var results = CssStatsPresenter.Present(FilteredFilesEvaluator.Evaluate(files)); Ux.DisplayBoolOption("Store detailed CSS results to disk?", () => { var filename = CssStatsStorageService.Store(results, string.Empty); //FilePresenter.Present(filename); }, null); Ux.WriteLine(""); } else { MessageBox.Show("Please specify the results folder first.", "Invalid Directory"); } }
public void StoreCss() { var mockHumanInterface = new Mock <IHumanInterface>(); var mockDateTimeProvider = new Mock <IDateTimeProvider>(); var mockStorer = new Mock <IStorageService>(); var mockNamer = new Mock <ICssStatsFileNameEvaluator>(); mockStorer.Setup(x => x.Store(It.IsAny <StringBuilder>(), It.IsAny <string>())).Callback <StringBuilder, string>((sb, title) => { var str = sb.ToString(); Assert.AreEqual(18, str.Count(x => x == ',')); Assert.AreEqual(2, Regex.Matches(str, Environment.NewLine).Count); }); var evaluator = new CssStatsStorageService(mockStorer.Object, mockDateTimeProvider.Object, mockHumanInterface.Object, mockNamer.Object); var testData = new List <CssEvaluationResult> { new CssEvaluationResult { Inline = new List <DetailedCssEvaluationResult> { new DetailedCssEvaluationResult { Value = "<div style='display:none;'></div>" } }, FileName = "test", Page = new List <int> { 3, 5 }, Razor = new List <DetailedCssEvaluationResult> { new DetailedCssEvaluationResult { Value = "{ style = 'float:left;' }" } }, } }; evaluator.Store(testData, string.Empty); }