public void Trace_Statements_Are_Reported_In_Order()
        {
            ObservableTraceListener tl         = new ObservableTraceListener();
            AutoResetEvent          waitHandle = new AutoResetEvent(false);

            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            const string firstMessage = "First Message";

            Trace.TraceWarning(firstMessage);
            const string secondMessage = "Second Message";

            Trace.TraceWarning(secondMessage);

            if (waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Contains(firstMessage), Is.True, "The TraceListener did not hold the first message given to it.");
            Assert.That(tl.ToString().Contains(secondMessage), Is.True, "The TraceListener did not hold the second message given to it.");

            Assert.That(tl.ToString().IndexOf(firstMessage), Is.LessThan(tl.ToString().IndexOf(secondMessage)), "The TraceListener did not hold the messages in the correct order.");
        }
        public void Trace_Statements_Are_Reported()
        {
            ObservableTraceListener tl = new ObservableTraceListener();
            AutoResetEvent waitHandle = new AutoResetEvent(false);
            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            Trace.TraceWarning("Some Message");

            if(waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Contains("Some Message"), Is.True, "The TraceListener did not hold the message given to it." + Environment.NewLine + tl);
        }
        public void Maximum_Size_Is_Honored()
        {
            ObservableTraceListener tl = new ObservableTraceListener("TraceListener1", 20);
            AutoResetEvent waitHandle = new AutoResetEvent(false);
            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            const string firstMessage = "1234567890";
            Trace.TraceWarning(firstMessage);

            if (waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Length, Is.EqualTo(20), "The TraceListener did not truncate the log.");
        }
        public void Trace_Statements_Are_Reported()
        {
            ObservableTraceListener tl         = new ObservableTraceListener();
            AutoResetEvent          waitHandle = new AutoResetEvent(false);

            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            Trace.TraceWarning("Some Message");

            if (waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Contains("Some Message"), Is.True, "The TraceListener did not hold the message given to it." + Environment.NewLine + tl);
        }
    public void T1_BindingErrorsExpected()
    {
        string error = null;

        using (var listener = new ObservableTraceListener())
        {
            listener.TraceCatched += s => error = s;
            //TextBlock myText = new TextBlock();
            //UserControl control = new UserControl();
            //Binding myBinding = new Binding("BadBinding");
            //myBinding.Source = control;
            //myText.SetBinding(TextBlock.BackgroundProperty, myBinding);
            PresentationTraceSources.DataBindingSource.TraceEvent(TraceEventType.Error, 0, "Hello World!");
        }
        Assert.IsNotNull(error);
        Console.WriteLine(error);
    }
    public void T1_BindingErrorsExpected()
    {
        string error = null;

        using (var listener = new ObservableTraceListener())
        {
            listener.TraceCatched += s => error = s;
            //TextBlock myText = new TextBlock();
            //UserControl control = new UserControl();
            //Binding myBinding = new Binding("BadBinding");
            //myBinding.Source = control;
            //myText.SetBinding(TextBlock.BackgroundProperty, myBinding);
            listener.Write("Hello");
            listener.WriteLine("HelloLine");
        }
        Assert.IsNotNull(error);
        Console.WriteLine(error);
    }
        public void Maximum_Size_Is_Honored()
        {
            ObservableTraceListener tl         = new ObservableTraceListener("TraceListener1", 20);
            AutoResetEvent          waitHandle = new AutoResetEvent(false);

            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            const string firstMessage = "1234567890";

            Trace.TraceWarning(firstMessage);

            if (waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Length, Is.EqualTo(20), "The TraceListener did not truncate the log.");
        }
        public void Trace_Statements_Are_Reported_In_Order()
        {
            ObservableTraceListener tl = new ObservableTraceListener();
            AutoResetEvent waitHandle = new AutoResetEvent(false);
            tl.TraceUpdated += delegate { waitHandle.Set(); };

            Trace.Listeners.Add(tl);
            const string firstMessage = "First Message";
            Trace.TraceWarning(firstMessage);
            const string secondMessage = "Second Message";
            Trace.TraceWarning(secondMessage);

            if (waitHandle.WaitOne(1000, false) == false)
            {
                Assert.Fail("The ObservableTraceListener did not report the update within 1 second.");
            }

            Assert.That(tl.ToString().Contains(firstMessage), Is.True, "The TraceListener did not hold the first message given to it.");
            Assert.That(tl.ToString().Contains(secondMessage), Is.True, "The TraceListener did not hold the second message given to it.");

            Assert.That(tl.ToString().IndexOf(firstMessage), Is.LessThan(tl.ToString().IndexOf(secondMessage)), "The TraceListener did not hold the messages in the correct order.");
        }