public void CanModifyRequestAndResponseBodyAndAddHeaders()
{
windsorContainer.Register(
Component.For<MessageLifecycleBehavior>(),
Component.For<IOperations>()
.Named("operations")
.AsWcfClient(new DefaultClientModel()
{
Endpoint = WcfEndpoint
.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
.At("net.tcp://localhost/Operations")
.AddExtensions(new ReplaceOperationsResult("100"),
new AddOperationsHeader("MyHeader", "Hello"))
})
);
var client = windsorContainer.Resolve<IOperations>("operations");
Assert.AreEqual(100, client.GetValueFromConstructor());
int i = 0;
foreach (var log in memoryAppender.GetEvents())
{
if ((++i % 2) == 0)
{
Assert.IsTrue(log.RenderedMessage.Contains("<MyHeader>Hello</MyHeader>"));
}
}
}