Пример #1
0
        public void UnEscapesData()
        {
            // Arrange
            const string content = @"MSH|^~\&|TestSys|432^testsys practice|TEST||201402171537||MDM^T02|121906|P|2.3.1||||||||
OBX|1|TX|PROBLEM FOCUSED^PROBLEM FOCUSED^test|1|\T\#39;Thirty days have September,\X000d\April\X0A\June,\X0A\and November.\X0A\When short February is done,\E\X0A\E\all the rest have\T\nbsp;31.\T\#39";

            var parser = new PipeParser();
            var msg    = parser.Parse(content);


            // Act
            var segment     = msg.GetStructure("OBX") as ISegment;
            var idx         = Terser.getIndices("OBX-5");
            var segmentData = Terser.Get(segment, idx[0], idx[1], idx[2], idx[3]);

            // Assert

            // verify that data was properly unescaped by NHapi
            // \E\X0A\E\ should be escaped to \X0A\
            // \X0A\ should be unescaped to \n
            // \X000d\ should be unescaped to \r
            // \t\ should be unescaped to &


            const string expectedResult =
                "'Thirty days have September,\rApril\nJune,\nand November.\nWhen short February is done,\\X0A\\all the rest have 31.&#39";

            Assert.AreEqual(expectedResult, segmentData);
        }