public async Task WhenSendingMultipleSequentialMessageInNonStrictModeThenGetsAckForAll() { IMessageControlIdGenerator generator = DefaultMessageControlIdGenerator.Instance; await using var client = await MllpClient.Create( IPAddress.Loopback.ToString(), Port, strict : false).ConfigureAwait(false); var tasks = Enumerable.Repeat(false, 300) .Select( async _ => { var request = new QBP_Q11(); request.MSH.MessageControlID.Value = generator.NextId(); var response = // ReSharper disable once AccessToDisposedClosure await client.Send(request).ConfigureAwait(false); return(response.Message is ACK); }); var results = await Task.WhenAll(tasks).ConfigureAwait(false); Assert.All(results, Assert.True); }
public async Task WhenSendingMessageThenGetsAck() { IMessageControlIdGenerator generator = DefaultMessageControlIdGenerator.Instance; var client = await MllpClient.Create(IPAddress.Loopback.ToString(), Port); var request = new QBP_Q11(); request.MSH.MessageControlID.Value = generator.NextId(); var response = await client.Send(request).ConfigureAwait(false); Assert.NotNull(response); }
public async Task WhenHandlingMessageThenReturnsResponse() { IMessageControlIdGenerator generator = DefaultMessageControlIdGenerator.Instance; var adt = new ADT_A01(); adt.MSH.MessageControlID.Value = generator.NextId(); var msg = new Hl7Message(adt, ""); var response = await _defaultHl7MessageMiddleware.Handle(msg).ConfigureAwait(false); Assert.NotNull(response); }
public async Task WhenSendingUpdateMessageThenIncludesObserver() { IMessageControlIdGenerator generator = DefaultMessageControlIdGenerator.Instance; var client = await MllpClient.Create(IPAddress.Loopback.ToString(), Port); var request = new SSU_U03(); request.MSH.MessageControlID.Value = generator.NextId(); var container = request.AddSPECIMEN_CONTAINER(); var obx = container.AddOBX(); var observer = obx.GetResponsibleObserver(0); observer.IDNumber.Value = "operatorId"; var response = await client.Send(request).ConfigureAwait(false); Assert.NotNull(response); }
public async Task WhenSendingMultipleParallelMessageThenGetsAckForAll() { IMessageControlIdGenerator generator = DefaultMessageControlIdGenerator.Instance; var tasks = Enumerable.Repeat(false, 5) .Select( async _ => { await using var client = await MllpClient.Create( IPAddress.Loopback.ToString(), Port).ConfigureAwait(false); var request = new QBP_Q11(); request.MSH.MessageControlID.Value = generator.NextId(); var response = await client.Send(request).ConfigureAwait(false); return(response?.Message is ACK); }); var results = await Task.WhenAll(tasks).ConfigureAwait(false); Assert.All(results, Assert.True); }