Deploy() public method

public Deploy ( Application app ) : void
app Hie.Core.Model.Application
return void
Esempio n. 1
0
		public HieEngine()
		{
			// The HIE Applicatoin Host

			_applicationHost = new ApplicationHost();

			Application application = CreateHl7Application(_applicationHost);

			_applicationHost.Deploy(application);
		}
Esempio n. 2
0
		public void BasicRoutingFilteringTransformationTest()
		{
			// A new application
			Application application = new Application();

			// Ports
			Port receivePort = new Port();
			IEndpoint endpoint = new EndpointMock();
			receivePort.Endpoint = endpoint;
			{
				IEncoder encoder = new PipelineComponentMock();
				receivePort.Encoders.Add(encoder);
				IDisassembler disassembler = new PipelineComponentMock();
				receivePort.Assembers.Add(disassembler);
			}
			application.Ports.Add(receivePort);

			Port sendPort = new Port();
			IEndpoint sendEndpoint = new EndpointMock();
			sendPort.Endpoint = sendEndpoint;
			{
				IEncoder encoder = new PipelineComponentMock();
				sendPort.Encoders.Add(encoder);
				IDisassembler disassembler = new PipelineComponentMock();
				sendPort.Assembers.Add(disassembler);
			}
			application.Ports.Add(sendPort);

			// Add a channel
			Channel channel = new Channel();
			application.Channels.Add(channel);

			// Source setup
			Source source = new Source();
			channel.Source = source;
			source.Filters.Add(new DelegateFilter((src, message) => true));
			source.Filters.Add(new JavaScriptFilter { Script = "true" });
			source.Transformers.Add(new DelegateTransformer());
			source.Transformers.Add(new DelegateTransformer((src, message) => { }));
			source.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString())));

			{
				Destination destination = new Destination();
				destination.Target = sendEndpoint;
				destination.Filters.Add(new DelegateFilter((src, message) => true));
				destination.Filters.Add(new JavaScriptFilter { Script = "true" });
				destination.Transformers.Add(new DelegateTransformer((src, message) => { }));
				destination.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString())));
				channel.Destinations.Add(destination);
			}
			{
				// This destination will filter out the message
				Destination destination = new Destination();
				destination.Target = sendEndpoint;
				destination.Filters.Add(new DelegateFilter((src, message) => false));
				channel.Destinations.Add(destination);
			}

			{
				// This destination will transform the message
				Destination destination = new Destination();
				destination.Target = sendEndpoint;
				destination.Filters.Add(new DelegateFilter((src, message) => true));
				destination.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString() + "test")));
				channel.Destinations.Add(destination);
			}

			// Host
			ApplicationHost applicationHost = new ApplicationHost();
			Assert.IsNotNull(applicationHost.Applications);
			applicationHost.Deploy(application);

			// Start the processing

			Message testMessage = new Message("text/json");
			testMessage.SetValueFrom("AAAA");
			// Mock method for sending a test message
			((EndpointMock) endpoint).SendTestMessage(testMessage);

			// Check that endpoint received the message
			EndpointMock endpointMock = sendEndpoint as EndpointMock;
			Assert.IsNotNull(endpointMock);
			Assert.IsNotNull(endpointMock.Messages);
			Assert.AreEqual(2, endpointMock.Messages.Count);
			foreach (byte[] data in endpointMock.Messages)
			{
				string actual = Encoding.UTF8.GetString(data);
				if (actual.EndsWith("test"))
				{
					Assert.AreEqual(testMessage.GetString() + "test", actual);
				}
				else
				{
					Assert.AreEqual(testMessage.GetString(), actual);
				}
			}
		}
Esempio n. 3
0
        public void BasicRoutingFilteringTransformationTest()
        {
            // A new application
            Application application = new Application();

            // Ports
            Port      receivePort = new Port();
            IEndpoint endpoint    = new EndpointMock();

            receivePort.Endpoint = endpoint;
            {
                IEncoder encoder = new PipelineComponentMock();
                receivePort.Encoders.Add(encoder);
                IDisassembler disassembler = new PipelineComponentMock();
                receivePort.Assembers.Add(disassembler);
            }
            application.Ports.Add(receivePort);

            Port      sendPort     = new Port();
            IEndpoint sendEndpoint = new EndpointMock();

            sendPort.Endpoint = sendEndpoint;
            {
                IEncoder encoder = new PipelineComponentMock();
                sendPort.Encoders.Add(encoder);
                IDisassembler disassembler = new PipelineComponentMock();
                sendPort.Assembers.Add(disassembler);
            }
            application.Ports.Add(sendPort);

            // Add a channel
            Channel channel = new Channel();

            application.Channels.Add(channel);

            // Source setup
            Source source = new Source();

            channel.Source = source;
            source.Filters.Add(new DelegateFilter((src, message) => true));
            source.Filters.Add(new JavaScriptFilter {
                Script = "true"
            });
            source.Transformers.Add(new DelegateTransformer());
            source.Transformers.Add(new DelegateTransformer((src, message) => { }));
            source.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString())));

            {
                Destination destination = new Destination();
                destination.Target = sendEndpoint;
                destination.Filters.Add(new DelegateFilter((src, message) => true));
                destination.Filters.Add(new JavaScriptFilter {
                    Script = "true"
                });
                destination.Transformers.Add(new DelegateTransformer((src, message) => { }));
                destination.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString())));
                channel.Destinations.Add(destination);
            }
            {
                // This destination will filter out the message
                Destination destination = new Destination();
                destination.Target = sendEndpoint;
                destination.Filters.Add(new DelegateFilter((src, message) => false));
                channel.Destinations.Add(destination);
            }

            {
                // This destination will transform the message
                Destination destination = new Destination();
                destination.Target = sendEndpoint;
                destination.Filters.Add(new DelegateFilter((src, message) => true));
                destination.Transformers.Add(new DelegateTransformer((src, message) => message.SetValueFrom(message.GetString() + "test")));
                channel.Destinations.Add(destination);
            }

            // Host
            ApplicationHost applicationHost = new ApplicationHost();

            Assert.IsNotNull(applicationHost.Applications);
            applicationHost.Deploy(application);

            // Start the processing

            Message testMessage = new Message("text/json");

            testMessage.SetValueFrom("AAAA");
            // Mock method for sending a test message
            ((EndpointMock)endpoint).SendTestMessage(testMessage);

            // Check that endpoint received the message
            EndpointMock endpointMock = sendEndpoint as EndpointMock;

            Assert.IsNotNull(endpointMock);
            Assert.IsNotNull(endpointMock.Messages);
            Assert.AreEqual(2, endpointMock.Messages.Count);
            foreach (byte[] data in endpointMock.Messages)
            {
                string actual = Encoding.UTF8.GetString(data);
                if (actual.EndsWith("test"))
                {
                    Assert.AreEqual(testMessage.GetString() + "test", actual);
                }
                else
                {
                    Assert.AreEqual(testMessage.GetString(), actual);
                }
            }
        }