Tests.TraceWCFTest.TestSayFaultHello C# (CSharp) Method

TestSayFaultHello() private method

private TestSayFaultHello ( ) : void
return void
        public void TestSayFaultHello()
        {
            String name = "Anonymous";
            Trace actual = null;
            TraceManager.OnTrace += t => actual = t;

            Uri baseAddress = new Uri("http://localhost:12345/hello");

            var factory = new ChannelFactory<IHelloWorldService>(new BasicHttpBinding(), new EndpointAddress(baseAddress));


            using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
            {
                host.AddServiceEndpoint(typeof(IHelloWorldService), new BasicHttpBinding(), baseAddress);
                foreach (var endpoint in host.Description.Endpoints)
                {
                    endpoint.Behaviors.Add(new TraceEndpointBehavior());
                }
                host.Open();

                var channel = factory.CreateChannel();
                try
                {
                    channel.SayFaultHello(name);
                }
                catch
                {
                    ((IDisposable)channel).Dispose();
                }

                host.Close();
            }
            Assert.IsNotNull(actual);
            Assert.IsNotNull(actual.Entries);
            Assert.AreEqual(0, actual.Entries.Count);
            Assert.IsTrue(actual.Properties.ContainsKey(SDBTraceProperties.TRACE_SUCCESS_PROPERTY));
            Assert.IsFalse((bool)actual.Properties[SDBTraceProperties.TRACE_SUCCESS_PROPERTY]);
            Assert.IsTrue(actual.Properties.ContainsKey(SDBTraceProperties.TRACE_RESULT_PROPERTY));

            var envelope = XElement.Parse((String)actual.Properties[SDBTraceProperties.TRACE_RESULT_PROPERTY]);
            Assert.IsNotNull(envelope);
            var body = envelope.Element("{http://schemas.xmlsoap.org/soap/envelope/}Body");
            Assert.IsNotNull(body);
            var fault = body.Element("{http://schemas.xmlsoap.org/soap/envelope/}Fault");
            Assert.IsNotNull(fault);
            var faultstring = fault.Element("faultstring");
            Assert.IsNotNull(faultstring);
            Assert.AreEqual("Hello, Anonymous", faultstring.Value);
        }
    }