Inheritance: AbstractMessageEnvelopeAction
Ejemplo n.º 1
0
		public void WillCreateNewXmlDocumentForNormalActions()
		{
			StoreMessageBody start = new StoreMessageBody(MessageLifecycle.Requests);
			StoreMessageBody end = new StoreMessageBody(MessageLifecycle.Requests);

			windsorContainer.Register(
				Component.For<MessageLifecycleBehavior>(),
				Component.For<IOperations>()
					.Named("operations")
					.ActAs(new DefaultClientModel()
					{
						Endpoint = WcfEndpoint
							.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
							.At("net.tcp://localhost/Operations")
							.AddExtensions(start, new ReplaceOperationsResult("100").ExecuteAt(1),
										   new ReplaceOperationsResult("200").ExecuteAt(2), 
										   new AddOperationsHeader("MyHeader", "Hello"),
										   end)
					})
				);

			IOperations client = windsorContainer.Resolve<IOperations>("operations");
			Assert.AreEqual(200, client.GetValueFromConstructor());
			Assert.IsNotNull(start.Body);
			Assert.IsNotNull(end.Body);
			Assert.AreNotSame(start.Body, end.Body);
		}
		public void WillUseSameXmlDocumentForConsecutiveModifications()
		{
			var start = new StoreMessageBody(MessageLifecycle.Requests);
			var end = new StoreMessageBody(MessageLifecycle.Requests);

			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(start, new ReplaceOperationsResult("100").ExecuteAt(1),
										   new ReplaceOperationsResult("200").ExecuteAt(2),
										   end)
					})
				);

			var client = windsorContainer.Resolve<IOperations>("operations");
			Assert.AreEqual(200, client.GetValueFromConstructor());
			Assert.IsNotNull(start.Body);
			Assert.AreSame(start.Body, end.Body);
		}