Example #1
0
        public void Validation_OptionalDateTimeTest()
        {
            EAny def = new EAny()
            {
                DataType  = DataType.DT,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 6,
                MaxLength = 6,
            };

            EAny def2 = new EAny()
            {
                DataType  = DataType.DT,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 8,
                MaxLength = 8,
            };

            EAny def3 = new EAny()
            {
                DataType  = DataType.TM,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 4,
                MaxLength = 4,
            };

            var el = new EdiDataElement(def, "160102");

            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def, "125566");
            Assert.IsFalse(el.IsValid(def));

            el = new EdiDataElement(def, "");
            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def2, "20160102");
            Assert.IsTrue(el.IsValid(def2));

            el = new EdiDataElement(def2, "22125566");
            Assert.IsFalse(el.IsValid(def2));

            el = new EdiDataElement(def2, "");
            Assert.IsTrue(el.IsValid(def2));

            el = new EdiDataElement(def3, "1122");
            Assert.IsTrue(el.IsValid(def3));

            el = new EdiDataElement(def3, "4567");
            Assert.IsFalse(el.IsValid(def3));

            el = new EdiDataElement(def3, "");
            Assert.IsTrue(el.IsValid(def3));
        }
Example #2
0
        public void Validation_NumericTest()
        {
            EAny def = new EAny()
            {
                DataType  = DataType.N0,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 3,
                MaxLength = 6,
            };

            EAny def2 = new EAny()
            {
                DataType  = DataType.N1,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 3,
                MaxLength = 6,
            };

            EAny def3 = new EAny()
            {
                DataType  = DataType.R,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 3,
                MaxLength = 6,
            };

            var el = new EdiDataElement(def, "123");

            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def, "12c");
            Assert.IsFalse(el.IsValid(def));

            el = new EdiDataElement(def, "");
            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def2, "123");
            Assert.IsTrue(el.IsValid(def2));

            el = new EdiDataElement(def2, "12c");
            Assert.IsFalse(el.IsValid(def2));

            el = new EdiDataElement(def2, "");
            Assert.IsTrue(el.IsValid(def2));

            el = new EdiDataElement(def3, "123.23");
            Assert.IsTrue(el.IsValid(def3));

            el = new EdiDataElement(def3, "1233c");
            Assert.IsFalse(el.IsValid(def3));

            el = new EdiDataElement(def3, "");
            Assert.IsTrue(el.IsValid(def3));
        }
Example #3
0
        public static EdiSegment ProcessSegment(MapBaseEntity definition, string[] content, int rowPos, IValidatedEntity validationScope)
        {
            MapSegment segDef = (MapSegment)definition;
            EdiSegment seg    = new EdiSegment(segDef);

            int i = 0;

            foreach (string val in content.Skip(1))
            {
                MapDataElement elDef = null;
                if (i < segDef.Content.Count)
                {
                    elDef = segDef.Content[i];
                }

                if (elDef == null)
                {
                    ValidationError err = new ValidationError()
                    {
                        SegmentPos  = rowPos,
                        SegmentName = content[0],
                        ElementPos  = i + 1,
                        Message     = $"Unexpected element '{val}'"
                    };
                    validationScope.ValidationErrors.Add(err);
                }

                EdiDataElement el = new EdiDataElement(elDef, val);
                if (elDef != null && !el.IsValid(elDef))
                {
                    ValidationError err = new ValidationError()
                    {
                        SegmentPos  = rowPos,
                        SegmentName = content[0],
                        ElementPos  = i + 1,
                        Message     = $"Invalid value '{val}'"
                    };
                    validationScope.ValidationErrors.Add(err);
                }

                i++;
                seg.Content.Add(el);
            }
            return(seg);
        }
Example #4
0
        public void Validation_IdTest()
        {
            EAny def = new EAny()
            {
                DataType  = DataType.ID,
                MinLength = 1,
                MaxLength = 1,
                ReqDes    = RequirementDesignator.Optional
            };

            def.AllowedValues.AddRange(new[] { "C", "F", "N", "R" });

            var el = new EdiDataElement(def, "F");

            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def, "Z");
            Assert.IsFalse(el.IsValid(def));

            el = new EdiDataElement(def, "");
            Assert.IsTrue(el.IsValid(def));
        }
Example #5
0
        public void Validation_OptionalMinMaxLen()
        {
            EAny def = new EAny()
            {
                DataType  = DataType.AN,
                ReqDes    = RequirementDesignator.Optional,
                MinLength = 2,
                MaxLength = 5,
            };

            var el = new EdiDataElement(def, "");

            Assert.IsTrue(el.IsValid(def));

            el = new EdiDataElement(def, "a");
            Assert.IsFalse(el.IsValid(def));

            el = new EdiDataElement(def, "abcdefg");
            Assert.IsFalse(el.IsValid(def));

            el = new EdiDataElement(def, "abcde");
            Assert.IsTrue(el.IsValid(def));
        }