public async Task I_HL7InterfaceSendsMessageToHL7ServerWaitAckAndResponseTest() { HL7InterfaceBase hl7Interface = new HL7InterfaceBase(); HL7Server server = new HL7Server(); AutoResetEvent requestReceived = new AutoResetEvent(false); HL7ProtocolBase protocol = new HL7ProtocolBase(new HL7ProtocolConfig() { IsAckRequired = true, IsResponseRequired = true, AckTimeout = 10000, ResponseTimeout = 50000 }); HL7Server serverSide = new HL7Server(); serverSide.Setup("127.0.0.1", 50060); server.Setup("127.0.0.1", 2012); server.Start(); hl7Interface.Initialize(serverSide, protocol); hl7Interface.Start(); server.NewRequestReceived += (e, s) => { Assert.That(s.Request is PrepareForSpecimenRequest); requestReceived.Set(); Thread.Sleep(500); byte[] bytesToSend = Encoding.ASCII.GetBytes(MLLP.CreateMLLPMessage((new PrepareForSpecimenResponse()).Encode())); e.Send(bytesToSend, 0, bytesToSend.Length); }; bool connected = await hl7Interface.ConnectAsync(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2012)); Assert.That(connected); HL7Request req = await hl7Interface.SendHL7MessageAsync(new PrepareForSpecimenRequest()); Assert.IsNotNull(req); Assert.That(req.Acknowledgment is GeneralAcknowledgment); Assert.That(req.Acknowledgment.IsAckForRequest(req.Request)); Assert.That(req.Acknowledgment.GetValue("MSA-1") == "AA"); Assert.IsNotNull(req.Response); Assert.That(req.Response.IsResponseForRequest(req.Request)); requestReceived.WaitOne(); server.Stop(); hl7Interface.Stop(); }
public async Task H_HL7InterfaceSendsMessageToHL7ServerWaitAck() { HL7InterfaceBase hl7Interface = new HL7InterfaceBase(); HL7Server server = new HL7Server(); AutoResetEvent requestReceived = new AutoResetEvent(false); HL7ProtocolBase protocol = new HL7ProtocolBase(new HL7ProtocolConfig() { IsAckRequired = true, IsResponseRequired = false }); HL7Server serverSide = new HL7Server(); serverSide.Setup("127.0.0.1", 50060); server.Setup("127.0.0.1", 2012); server.Start(); hl7Interface.Initialize(serverSide, protocol); hl7Interface.Start(); server.NewRequestReceived += (e, s) => { Assert.That(s.Request is PrepareForSpecimenRequest); requestReceived.Set(); }; bool connected = await hl7Interface.ConnectAsync(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2012)); Assert.That(connected); HL7Request req = await hl7Interface.SendHL7MessageAsync(new PrepareForSpecimenRequest()); Assert.IsNotNull(req); Assert.That(req.Acknowledgment is GeneralAcknowledgment); Assert.That(HL7Parser.IsAckForRequest(req.Request, req.Acknowledgment)); requestReceived.WaitOne(); server.Stop(); hl7Interface.Stop(); }
public async Task G_HL7InterfaceSendsMessageToHL7ServerNoAckNoResponse() { HL7InterfaceBase hl7Interface = new HL7InterfaceBase(); HL7Server server = new HL7Server(); AutoResetEvent requestReceived = new AutoResetEvent(false); HL7ProtocolBase protocol = new HL7ProtocolBase(new HL7ProtocolConfig() { IsAckRequired = false, IsResponseRequired = false }); server.Setup("127.0.0.1", 50050); server.Start(); HL7Server serverSide = new HL7Server(); serverSide.Setup("127.0.0.1", 50060); hl7Interface.Initialize(serverSide, protocol); hl7Interface.Start(); server.NewRequestReceived += (e, s) => { Assert.That(s.Request is PrepareForSpecimenRequest); requestReceived.Set(); }; bool connected = await hl7Interface.ConnectAsync(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 50050)); Assert.That(connected); await hl7Interface.SendHL7MessageAsync(new PrepareForSpecimenRequest()); requestReceived.WaitOne(); server.Stop(); hl7Interface.Stop(); }