public ObservableReporter(IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { _Dispatcher = Dispatcher.CurrentDispatcher; _FileLocationParser = fileLocationParser; _FileLocationMapper = fileLocationMapper; Runners = new BindableCollection <RunnerViewModel>(); Suites = new BindableCollection <SuiteViewModel>(); }
public static SpecStepViewModel Create(SpecStep specStep, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { SpecStepViewModel specStepViewModel = new SpecStepViewModel { Message = specStep.Message, ErrorLocation = fileLocationParser.Parse(specStep.ErrorLocation), Status = specStep.Status, Trace = ParseTrace(specStep.Trace, fileLocationParser, fileLocationMapper) }; if (specStepViewModel.ErrorLocation != null) { specStepViewModel.MappedLocation = fileLocationMapper.Map(specStepViewModel.ErrorLocation); } return(specStepViewModel); }
public static SpecTraceStepViewModel Create(string traceLine, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { string methodName = null; string scriptLocation = null; if (TryParseFirefoxSafari(traceLine, ref methodName, ref scriptLocation) || TryParseIEChrome(traceLine, ref methodName, ref scriptLocation)) { SpecTraceStepViewModel specTraceStepViewModel = new SpecTraceStepViewModel(); specTraceStepViewModel.Message = traceLine; specTraceStepViewModel.MethodName = String.IsNullOrEmpty(methodName) ? "<anonymous>" : methodName; specTraceStepViewModel.ScriptLocation = fileLocationParser.Parse(scriptLocation); specTraceStepViewModel.MappedLocation = fileLocationMapper.Map(specTraceStepViewModel.ScriptLocation); return(specTraceStepViewModel); } return(new SpecTraceStepViewModel() { Message = traceLine }); }
private static BindableCollection <SpecTraceStepViewModel> ParseTrace(string trace, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { BindableCollection <SpecTraceStepViewModel> traceLines = new BindableCollection <SpecTraceStepViewModel>(); if (!String.IsNullOrEmpty(trace)) { foreach (string traceLine in trace.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries)) { traceLines.Add(SpecTraceStepViewModel.Create(traceLine, fileLocationParser, fileLocationMapper)); } } return(traceLines); }
public void SetStatus(string runnerId, SpecStatus specStatus, UInt64 time, IEnumerable <SpecStep> steps, IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper) { SpecStatusViewModel specStatusViewModel = null; if (!Statuses.TryGetValue(runnerId, out specStatusViewModel) || specStatusViewModel.Time <= time) { if (specStatusViewModel == null) { specStatusViewModel = new SpecStatusViewModel() { Duration = 0 }; Statuses[runnerId] = specStatusViewModel; } else { specStatusViewModel.Duration += (int)(time - specStatusViewModel.Time); } specStatusViewModel.Status = specStatus; specStatusViewModel.Time = time; if (steps != null) { specStatusViewModel.Steps = new BindableCollection <SpecStepViewModel>(steps.Select(s => SpecStepViewModel.Create(s, fileLocationParser, fileLocationMapper))); } UpdateDuration(); } }