public void Should_return_methods_from_entire_hierarchy()
        {
            //Given
            var child = new FakeChildDiagnosticsProvider();
            var parent = new FakeParentDiagnosticsProvider();
            IEnumerable<IDiagnosticsProvider> ie = new IDiagnosticsProvider[] { child, parent };
            var id = new InteractiveDiagnostics(ie);
            var ad = id.AvailableDiagnostics;

            //When
            int methodsInParent = ad.ElementAt(1).Methods.Count();
            int methodsInChild = ad.First().Methods.Count();

            //Then
            Assert.True(methodsInChild == methodsInParent + 1);
        }
        public void Should_return_methods_from_entire_hierarchy()
        {
            //Given
            var child = new FakeChildDiagnosticsProvider();
            var parent = new FakeParentDiagnosticsProvider();

            var diagnostics = new InteractiveDiagnostics(new[] {child, parent});
            var availableDiagnostics = diagnostics.AvailableDiagnostics.ToList();

            //When
            var methodsInChild = availableDiagnostics[0].Methods.Count();
            var methodsInParent = availableDiagnostics[1].Methods.Count();

            //Then
            Assert.True(methodsInChild == methodsInParent + 1);
        }
        public void Should_exclude_object_methods()
        {
            //Given
            var child = new FakeChildDiagnosticsProvider();

            var diagnostics = new InteractiveDiagnostics(new[] { child });
            var availableDiagnostics = diagnostics.AvailableDiagnostics.ToList();

            var objectMethodNames = typeof(object).GetMethods()
                .Select(x => x.Name)
                .ToList();

            //When
            var methodsInChild = availableDiagnostics[0].Methods;

            //Then
            foreach (var childMethod in methodsInChild)
            {
                Assert.DoesNotContain(childMethod.MethodName, objectMethodNames);
            }
        }