Hie.Core.Model.Hl7AssemblerTest.XmlToHl7ConverterTest C# (CSharp) Method

XmlToHl7ConverterTest() private method

private XmlToHl7ConverterTest ( ) : void
return void
		public void XmlToHl7ConverterTest()
		{
			XDocument document = XDocument.Load("Hl7DisassemblerTest-hl7.xml");

			var element = document.Descendants("MSH.19.1").FirstOrDefault();
			Assert.IsNotNull(element);
			Assert.AreEqual(" ", element.Value, "We need these empty spaces in the file to make sure the XML framework doesn't throw them away on the way");

			String segmentSeparator = "\r";
			String fieldSeparator = "|";
			String componentSeparator = "^";
			String repetitionSeparator = "~";
			String subcomponentSeparator = "&";
			String escapeCharacter = "\\";

			var converter = new XmlToHl7Converter(segmentSeparator, fieldSeparator, componentSeparator, repetitionSeparator, escapeCharacter, subcomponentSeparator, true);
			byte[] result = converter.Convert(document);
			Assert.IsNotNull(result);

			string outFilePath = "hl7-assembler-test-out.txt";
			using (StreamWriter writer = new StreamWriter(outFilePath))
			{
				writer.Write(Encoding.UTF8.GetString(result));
				writer.Close();
			}

			byte[] expected = null;
			using (StreamReader reader = new StreamReader("Hl7DisassemblerTest-hl7-2.txt"))
			{
				string text = reader.ReadToEnd();
				expected = Encoding.UTF8.GetBytes(text);
			}

			Assert.AreEqual(expected[0], result[0]);
			Assert.AreEqual(expected[1], result[1]);
			Assert.AreEqual(expected[expected.Length - 5], result[expected.Length - 5], "Failed with | and \" differ at end of the second segment");
			Assert.AreEqual(expected.Length, result.Length);
			Assert.IsTrue(expected.SequenceEqual(result), "Expected and result message didn't match.");
		}
	}