Exemplo n.º 1
0
 public ObservableReporter(IFileLocationParser fileLocationParser, IFileLocationMapper fileLocationMapper)
 {
     _Dispatcher         = Dispatcher.CurrentDispatcher;
     _FileLocationParser = fileLocationParser;
     _FileLocationMapper = fileLocationMapper;
     Runners             = new BindableCollection <RunnerViewModel>();
     Suites = new BindableCollection <SuiteViewModel>();
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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
            });
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
            }
        }