public Process_message() { // Build _map = new Map_message_to_input_ports(); var output = new Output_result(); _create = new Create_task(); var wrap = new Wrap_EBC_method(); var exec = new Execute_task(); var nest = new Nest_message_flow(); // Bind _process += _map.Process; _map.Result += _ => Message(_); _map.Result += output.Process; output.Result += _ => Result(_); output.Continue += _create.Process; _create.Result += wrap.Process; _create.UnknownOperation += nest.Process; wrap.Result += exec.Process; exec.Result += _ => Continue(_); exec.HandledException += _ => Continue(_); exec.UnhandledException += _ => UnhandledException(_); nest.Result += _map.Process; _execute += exec.Process; }
public void Unknow_port_to_map_causes_no_error() { var sut = new Map_message_to_input_ports(); var streams = new List <IStream>(); sut.Inject(streams); var results = new List <string>(); sut.Result += _ => results.Add(_.Port.Fullname); sut.Process(new Message("b", "some data")); Assert.AreEqual(0, results.Count); }
public void Data_gets_copied() { var sut = new Map_message_to_input_ports(); List <IStream> streams = new List <IStream>(); streams.Add(new Stream("a", "a1")); sut.Inject(streams); IMessage result = null; sut.Result += _ => result = _; sut.Process(new Message("a", "some data")); Assert.AreEqual("some data", result.Data); }
public void Maps_to_single_input_port() { var sut = new Map_message_to_input_ports(); List <IStream> streams = new List <IStream>(); streams.Add(new Stream("a", "a1")); streams.Add(new Stream("b", "b1")); streams.Add(new Stream("c", "c1")); sut.Inject(streams); string result = null; sut.Result += _ => result = _.Port.Fullname; sut.Process(new Message("b", "some data")); Assert.AreEqual("b1", result); }
public void Maps_to_multiple_input_ports() { var sut = new Map_message_to_input_ports(); var streams = new List <IStream>(); streams.Add(new Stream("a", "a1")); streams.Add(new Stream("b", "b1")); streams.Add(new Stream("b", "b2")); streams.Add(new Stream("c", "c1")); sut.Inject(streams); var results = new List <string>(); sut.Result += _ => results.Add(_.Port.Fullname); sut.Process(new Message("b", "some data")); Assert.That(results, Is.EquivalentTo(new[] { "b1", "b2" })); }