public void Unknow_port_to_map() { var sut = new Map_message_to_input_ports(); List<IStream> streams = new List<IStream>(); sut.Inject(streams); Assert.Throws(typeof(InvalidOperationException), () => sut.Process(new Message("b", "some data"))); }
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"})); }
public Process_message() { // Build _map = new Map_message_to_input_ports(); var output = new Output_result(); _create = new Create_task(); 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 += exec.Process; _create.UnknownOperation += nest.Process; exec.Result += _ => Continue(_); exec.HandledException += _ => Continue(_); exec.UnhandledException += _ => UnhandledException(_); nest.Result += _map.Process; _execute += exec.Process; }