示例#1
0
        public void OnRequestFailure_NoStartOperation()
        {
            var tracer = new TestTracer();
            var op     = MockResolveOperation();

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, new OperationStartDiagnosticData(op, MockResolveRequest()));

            // Should have a request start before ending, but make sure we don't
            // explode if something weird happens.
            tracer.TestWrite(DiagnosticEventKeys.RequestFailure, new RequestFailureDiagnosticData(op, MockResolveRequestContext(), new DivideByZeroException()));
        }
示例#2
0
        public void OnRequestStart_NoOperation()
        {
            var tracer = new TestTracer();

            tracer.TestWrite(DiagnosticEventKeys.RequestStart, new RequestDiagnosticData(MockResolveOperation(), MockResolveRequestContext()));
            Assert.Equal(0, tracer.OperationsInProgress);
        }
示例#3
0
        public void OnOperationFailure_NoDataSkipsOperation()
        {
            var tracer = new TestTracer();
            var op     = MockResolveOperation();
            var called = false;

            tracer.OperationCompleted += (sender, args) =>
            {
                called = true;
            };

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, new OperationStartDiagnosticData(op, MockResolveRequest()));
            tracer.TestWrite(DiagnosticEventKeys.OperationFailure, null);
            Assert.Equal(1, tracer.OperationsInProgress);
            Assert.False(called);
        }
示例#4
0
        public void OnOperationFailure_CompletesOperation()
        {
            var tracer = new TestTracer();
            var called = false;

            tracer.OperationCompleted += (sender, args) =>
            {
                called = true;
            };
            var op = MockResolveOperation();

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, new OperationStartDiagnosticData(op, MockResolveRequest()));
            tracer.TestWrite(DiagnosticEventKeys.OperationFailure, new OperationFailureDiagnosticData(op, new DivideByZeroException()));
            Assert.Equal(0, tracer.OperationsInProgress);
            Assert.True(called);
        }
示例#5
0
        public void OnOperationSuccess_CompletesOperation()
        {
            var tracer = new TestTracer();
            var called = false;

            tracer.OperationCompleted += (sender, args) =>
            {
                called = true;
            };
            var op = MockResolveOperation();

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, new OperationStartDiagnosticData(op, MockResolveRequest()));
            tracer.TestWrite(DiagnosticEventKeys.OperationSuccess, new OperationSuccessDiagnosticData(op, "instance"));
            Assert.Equal(0, tracer.OperationsInProgress);
            Assert.True(called);
        }
示例#6
0
        public void OnOperationStart_NoDataSkipsOperation()
        {
            var tracer = new TestTracer();

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, null);
            Assert.Equal(0, tracer.OperationsInProgress);
        }
示例#7
0
        public void OnOperationStart_AddsOperation()
        {
            var tracer = new TestTracer();

            tracer.TestWrite(DiagnosticEventKeys.OperationStart, new OperationStartDiagnosticData(MockResolveOperation(), MockResolveRequest()));
            Assert.Equal(1, tracer.OperationsInProgress);
        }