public void CanCaptureRequestsAndResponses()
{
windsorContainer.Register(
Component.For<LogMessageEndpointBehavior>()
.Attribute("scope").Eq(WcfExtensionScope.Explicit)
.Named("logMessageBehavior"),
Component.For<IOperations>()
.Named("operations")
.AsWcfClient(new DefaultClientModel()
{
Endpoint = WcfEndpoint
.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations")
.LogMessages()
})
);
var client = windsorContainer.Resolve<IOperations>("operations");
Assert.AreEqual(42, client.GetValueFromConstructor());
Assert.AreEqual(4, memoryAppender.GetEvents().Length);
foreach (var log in memoryAppender.GetEvents())
{
Assert.AreEqual(typeof(IOperations).FullName, log.LoggerName);
Assert.IsTrue(log.Properties.Contains("NDC"));
}
}