static void Parse(string stackTrace, int index,
                          string frame,
                          string type, string method, string parameterList, string parameters,
                          string file, string line)
        {
            var actuals = StackTraceParser.Parse(stackTrace,
                                                 (f, t, m, pl, ps, fn, ln) => new
            {
                Frame         = f,
                Type          = t,
                Method        = m,
                ParameterList = pl,
                Parameters    = string.Join(", ", from e in ps select e.Key + " " + e.Value),
                File          = fn,
                Line          = ln,
            });

            var actual = actuals.ElementAt(index);

            Assert.That(frame, Is.EqualTo(actual.Frame), "Frame");
            Assert.That(type, Is.EqualTo(actual.Type), "Type");
            Assert.That(method, Is.EqualTo(actual.Method), "Method");
            Assert.That(parameterList, Is.EqualTo(actual.ParameterList), "ParameterList");
            Assert.That(parameters, Is.EqualTo(actual.Parameters), "Parameters");
            Assert.That(file, Is.EqualTo(actual.File), "File");
            Assert.That(line, Is.EqualTo(actual.Line), "Line");
        }
        static void Parse(string stackTrace, int index, string frame)
        {
            var actuals = StackTraceParser.Parse(stackTrace,
                                                 (f, t, m, pl, ps, fn, ln) => f);

            var actual = actuals.ElementAt(index);

            Assert.That(frame, Is.EqualTo(actual));
        }
        public void ParseFailsWithNullParameterSelector()
        {
            var e = Assert.Throws <ArgumentNullException>(() =>
                                                          StackTraceParser.Parse <object, object, object, object, object, object>(
                                                              string.Empty,
                                                              delegate { return(null); },
                                                              delegate { return(null); },
                                                              null,
                                                              delegate { return(null); },
                                                              delegate { return(null); },
                                                              delegate { return(null); }));

            Assert.That(e.ParamName, Is.EqualTo("parameterSelector"));
        }
        public void ParseWithSimpleOverloadFailsWithNullSelector()
        {
            var e = Assert.Throws <ArgumentNullException>(() => StackTraceParser.Parse <object>(string.Empty, null));

            Assert.That(e.ParamName, Is.EqualTo("selector"));
        }