예제 #1
0
    public HttpQueryableServiceSpec()
    {
        this.listener      = new ConsoleTraceListener();
        this.listener.Name = Guid.NewGuid().ToString();

        TracerExtensibility.AddListener(SourceName.For <TracingChannel>(), listener);
        TracerExtensibility.SetTracingLevel(SourceName.For <TracingChannel>(), SourceLevels.All);
    }
예제 #2
0
        public void WhenAddListener_ThenAddsItToEntryConfiguration()
        {
            var listener = new ConsoleTraceListener();

            TracerExtensibility.AddListener("Foo", listener);

            var entry = global::System.Diagnostics.Tracer.Instance.GetSourceEntryFor("Foo");

            Assert.True(entry.Configuration.Listeners.Contains(listener));
        }
예제 #3
0
        public void WhenReplacingTracer_ThenTracersInvokeIt()
        {
            var tracer = new Mock <ITracer> {
                DefaultValue = DefaultValue.Mock
            };

            using (TracerExtensibility.SetTracer(tracer.Object))
            {
                global::System.Diagnostics.Tracer.GetSourceFor <IComparable>();

                tracer.Verify(x => x.GetSourceEntryFor("*"));
                tracer.Verify(x => x.GetSourceEntryFor("System"));
                tracer.Verify(x => x.GetSourceEntryFor("System.IComparable"));
            }
        }
예제 #4
0
        public void WhenDisposingReplacedTracerResult_ThenRevertsToExisting()
        {
            var tracer = new Mock <ITracer> {
                DefaultValue = DefaultValue.Mock
            };

            using (TracerExtensibility.SetTracer(tracer.Object))
            {
            }

            global::System.Diagnostics.Tracer.GetSourceFor <IComparable>();

            tracer.Verify(x => x.GetSourceEntryFor("*"), Times.Never());
            tracer.Verify(x => x.GetSourceEntryFor("System"), Times.Never());
            tracer.Verify(x => x.GetSourceEntryFor("System.IComparable"), Times.Never());
        }
예제 #5
0
        public void WhenRemoveAddedListener_ThenRemovesItFromEntryConfiguration()
        {
            var listener = new ConsoleTraceListener {
                Name = "Bar"
            };

            TracerExtensibility.AddListener("Foo", listener);

            var entry = global::System.Diagnostics.Tracer.Instance.GetSourceEntryFor("Foo");

            Assert.True(entry.Configuration.Listeners.Contains(listener));

            TracerExtensibility.RemoveListener("Foo", "Bar");

            Assert.False(entry.Configuration.Listeners.Contains(listener));
        }
예제 #6
0
    public void WhenExecutingRequest_ThenTracesInformationHeaders()
    {
        var listener = new ConsoleTraceListener();

        TracerExtensibility.AddListener(SourceName.For <TracingChannel>(), listener);
        TracerExtensibility.SetTracingLevel(SourceName.For <TracingChannel>(), SourceLevels.All);

        var config = HttpHostConfiguration.Create()
                     .UseJsonNet()
                     .AddMessageHandlers(typeof(TracingChannel));

        using (var ws = new HttpWebService <TestService>("http://localhost:20000", "products", true, config))
        {
            var client   = new HttpEntityClient(ws.BaseUri);
            var products = client.Query <Product>().Skip(1).Take(1).ToList();

            Assert.Equal(1, products.Count);
            Assert.Equal(2, products[0].Id);
        }

        listener.Flush();
    }
예제 #7
0
        public void WhenSettingTracingLevel_ThenConfigurationIsSet()
        {
            TracerExtensibility.SetTracingLevel("Foo", SourceLevels.Warning);

            Assert.Equal(SourceLevels.Warning, global::System.Diagnostics.Tracer.Instance.GetSourceEntryFor("Foo").Configuration.Switch.Level);
        }
예제 #8
0
 public void WhenSettingTracingLevelWithNullSourceName_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.SetTracingLevel(null, SourceLevels.All));
 }
예제 #9
0
 public void WhenSettingNullTracer_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.SetTracer(null));
 }
예제 #10
0
 public void WhenRemoveListenerWithNullTracer_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.RemoveListener(null, "Foo", "Bar"));
 }
예제 #11
0
 public void WhenRemoveListenerWithNullListenerName_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.RemoveListener("Foo", null));
 }
예제 #12
0
 public void WhenAddNullListener_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.AddListener("Foo", null));
 }
예제 #13
0
 public void WhenAddListenerWithNullSourceName_ThenThrowsArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           TracerExtensibility.AddListener(null, new ConsoleTraceListener()));
 }
예제 #14
0
 public void Dispose()
 {
     this.listener.Flush();
     TracerExtensibility.RemoveListener(SourceName.For <TracingChannel>(), listener.Name);
 }