Skip to content

Commit 0f92aec

Browse files
PhantomGrazzlermilkshakeuk
authored andcommitted
Added unit test for the GetCriticalResponseData method on PipeParser.
1 parent 4c72955 commit 0f92aec

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/NHapi.NUnit/Parser/PipeParserTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,5 +400,35 @@ public void Obx5DataTypeIsSetFromObx2_WhenObx2IsAnInvalidTypeAndInvalidOptionIsS
400400
Assert.IsAssignableFrom(expectedObservationValueType, actualObservationValueType);
401401
Assert.AreEqual("STValue", ((IPrimitive)actualObservationValueType).Value);
402402
}
403+
404+
/// <summary>
405+
/// Test that the critical response fields can be parsed from a valid message.
406+
/// </summary>
407+
[Test]
408+
public void GetCriticalResponseDataFromValidMessage()
409+
{
410+
var parser = new PipeParser();
411+
412+
var parsed = parser.GetCriticalResponseData(GetMessage()) as NHapi.Model.V231.Segment.MSH;
413+
Assert.NotNull(parsed);
414+
Assert.AreEqual("|", parsed.FieldSeparator.Value);
415+
Assert.AreEqual(@"^~\&", parsed.EncodingCharacters.Value);
416+
Assert.AreEqual("P", parsed.ProcessingID.ProcessingID.Value);
417+
Assert.AreEqual("EBzH1711114101206", parsed.MessageControlID.Value);
418+
}
419+
420+
/// <summary>
421+
/// Test that a <see cref="HL7Exception"/> is thrown when one of the critical components is missing
422+
/// from the message.
423+
/// </summary>
424+
[Test]
425+
public void GetCriticalResponseData_FailToParseInvalidMessage()
426+
{
427+
var invalidMessage = GetMessage().Replace("P", string.Empty);
428+
var parser = new PipeParser();
429+
430+
var exception = Assert.Throws<HL7Exception>(() => parser.GetCriticalResponseData(invalidMessage));
431+
Assert.True(exception.Message.Contains("Can't parse critical fields from MSH segment"));
432+
}
403433
}
404434
}

0 commit comments

Comments
 (0)