예제 #1
0
        /// <exception cref="System.Exception"></exception>
        public virtual void TestInvalidNode(XmlNode invalidNode)
        {
            XmlToModelResult xmlResult   = new XmlToModelResult();
            string           parseResult = (string)new EdSignatureElementParser().Parse(CreateEdContext(), invalidNode, xmlResult).BareValue;

            Assert.IsNull(parseResult, "parse result");
            Assert.AreEqual(2, xmlResult.GetHl7Errors().Count, "HL7 error count");
            Hl7Error hl7Error = xmlResult.GetHl7Errors()[0];

            Assert.AreEqual("Attribute mediaType must be included with a value of \"text/xml\" for ED.SIGNATURE", hl7Error.GetMessage
                                (), "error message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message code");
            hl7Error = xmlResult.GetHl7Errors()[1];
            Assert.AreEqual("Expected ED.SIGNATURE node to have a child element named signature", hl7Error.GetMessage(), "error message"
                            );
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message code");
        }
예제 #2
0
        public virtual void TestParseWidthFailureValueAndUnit()
        {
            XmlNode node = CreateNode("<effectiveTime>" + "   <width value=\"1.d\" unit=\"monkey\"/>" + "</effectiveTime>");
            Interval <PlatformDate> interval = Parse(node, "IVL<TS>");

            Assert.IsNull(interval, "null");
            Assert.IsFalse(this.result.IsValid(), "not valid");
            Assert.AreEqual(3, this.result.GetHl7Errors().Count, "error count");
            Hl7Error hl7Error = this.result.GetHl7Errors()[1];

            Assert.AreEqual("value \"1.d\" must contain digits only (<width unit=\"monkey\" value=\"1.d\"/>)", hl7Error.GetMessage(),
                            "message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error type");
            hl7Error = this.result.GetHl7Errors()[2];
            Assert.AreEqual("Unit \"monkey\" is not valid for type PQ.TIME (<width unit=\"monkey\" value=\"1.d\"/>)", hl7Error.GetMessage
                                (), "message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error type");
        }
예제 #3
0
        public virtual void TestParseInvalidValueUrlScheme()
        {
            XmlNode node = CreateNode("<something value=\"mailfrom://monkey\" />");

            new TelElementParser().Parse(CreateContext("TEL.PHONE", SpecificationVersion.V02R02), node, this.xmlResult);
            Assert.IsFalse(this.xmlResult.IsValid());
            Assert.AreEqual(2, this.xmlResult.GetHl7Errors().Count, "HL7 error count");
            // invalid scheme; must have a valid scheme
            Hl7Error hl7Error = this.xmlResult.GetHl7Errors()[0];

            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message code");
            Assert.AreEqual("Unrecognized URL scheme 'mailfrom' in element /something", hl7Error.GetMessage(), "error message");
        }
예제 #4
0
        public virtual void TestParseInvalidValueAttributeNode()
        {
            XmlNode node = CreateNode("<something value=\"1234\" />");

            new TelElementParser().Parse(CreateContext("TEL.PHONE", SpecificationVersion.V02R02), node, this.xmlResult);
            Assert.IsFalse(this.xmlResult.IsValid());
            Assert.AreEqual(1, this.xmlResult.GetHl7Errors().Count, "HL7 error count");
            Hl7Error hl7Error = this.xmlResult.GetHl7Errors()[0];

            Assert.AreEqual("TelecomAddress must have a valid URL scheme (e.g. 'http://') (<something value=\"1234\"/>)", hl7Error.GetMessage
                                (), "error message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message code");
        }
예제 #5
0
        public virtual void TestParseInvalidValueAttribute()
        {
            XmlNode node = CreateNode("<something value=\"19990355101112\" />");

            new TsElementParser().Parse(CreateContext(), node, this.xmlResult);
            Assert.IsFalse(this.xmlResult.IsValid(), "valid date");
            Assert.AreEqual(1, this.xmlResult.GetHl7Errors().Count, "one error");
            Hl7Error hl7Error = this.xmlResult.GetHl7Errors()[0];

            Assert.AreEqual("The timestamp 19990355101112 in element <something value=\"19990355101112\"/> cannot be parsed.", hl7Error
                            .GetMessage(), "error message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message type");
        }
예제 #6
0
        public virtual void TestParseInvalidValueAttribute()
        {
            XmlNode          node   = CreateNode("<something value=\"19990355\" />");
            XmlToModelResult result = new XmlToModelResult();

            new TsElementParser().Parse(new TrivialContext("TS.DATETIME"), node, result);
            Assert.IsFalse(result.IsValid(), "valid date");
            Assert.AreEqual(1, result.GetHl7Errors().Count, "one error");
            Hl7Error hl7Error = result.GetHl7Errors()[0];

            Assert.AreEqual("The timestamp 19990355 in element <something value=\"19990355\"/> cannot be parsed.", hl7Error.GetMessage
                                (), "error message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error message type");
        }
예제 #7
0
        public virtual void TestParseWidthFailureUnit()
        {
            XmlNode node = CreateNode("<effectiveTime>" + "   <width unit=\"monkeys\" value=\"1\"/>" + "</effectiveTime>");
            Interval <PlatformDate> interval = Parse(node, "IVL<TS.FULLDATE>");

            Assert.IsNull(interval, "null");
            Assert.IsFalse(this.result.IsValid(), "not valid");
            // errors: need one additional element (low or high); units are not valid
            Assert.AreEqual(2, this.result.GetHl7Errors().Count, "error count");
            Hl7Error hl7Error = this.result.GetHl7Errors()[1];

            Assert.AreEqual("Unit \"monkeys\" is not valid for type PQ.TIME (<width unit=\"monkeys\" value=\"1\"/>)", hl7Error.GetMessage
                                (), "message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error type");
        }
예제 #8
0
        public virtual void TestParseWidthFailureValue()
        {
            XmlNode node = CreateNode("<effectiveTime>" + "   <width value=\"1.d\" unit=\"d\"/>" + "</effectiveTime>");
            Interval <PlatformDate> interval = Parse(node, "IVL<TS>");

            Assert.IsNull(interval, "null");
            Assert.IsFalse(this.result.IsValid(), "not valid");
            Assert.AreEqual(1, this.result.GetHl7Errors().Count, "error count");
            // width invalid
            Hl7Error hl7Error = this.result.GetHl7Errors()[0];

            Assert.AreEqual("value \"1.d\" is not a valid decimal value (<width unit=\"d\" value=\"1.d\"/>)", hl7Error.GetMessage(),
                            "message");
            Assert.AreEqual(Hl7ErrorCode.DATA_TYPE_ERROR, hl7Error.GetHl7ErrorCode(), "error type");
        }