public void SyntaxNote_Paired() { //If any element specified in the relational condition is present, then all must be present //true List <string> content1 = new List <string>() { "01", "02", "03", "04", "05", "06" }; List <string> content2 = new List <string>() { "01", }; List <string> content3 = new List <string>() { "01", "", "", "", "", "06" }; //false List <string> content4 = new List <string>() { "01", "02", "03", "", "05", "06" }; List <string> content5 = new List <string>() { "01", "", "03", "04" }; List <string> content6 = new List <string>() { "01", "", "03" }; var syntaxNote = SyntaxNoteFactory.GetSyntaxNote("P020304"); bool res1 = syntaxNote.IsValid(content1.ToArray()); bool res2 = syntaxNote.IsValid(content2.ToArray()); bool res3 = syntaxNote.IsValid(content3.ToArray()); bool res4 = syntaxNote.IsValid(content4.ToArray()); bool res5 = syntaxNote.IsValid(content5.ToArray()); bool res6 = syntaxNote.IsValid(content6.ToArray()); Assert.IsTrue(res1); Assert.IsTrue(res2); Assert.IsTrue(res3); Assert.IsFalse(res4); Assert.IsFalse(res5); Assert.IsFalse(res6); }
public void SyntaxNote_Exclusions() { //Not more than one can be present //true List <string> content1 = new List <string>() { "01", "02", "", "", "05", "06" }; List <string> content2 = new List <string>() { "01", "02" }; List <string> content3 = new List <string>() { "01", "", "", "04", "", "06" }; List <string> content4 = new List <string>() { "01", "", "", "", "05", "06" }; List <string> content5 = new List <string>() { "01" }; //false List <string> content6 = new List <string>() { "01", "02", "03", "", "05", "06" }; var syntaxNote = SyntaxNoteFactory.GetSyntaxNote("E020304"); bool res1 = syntaxNote.IsValid(content1.ToArray()); bool res2 = syntaxNote.IsValid(content2.ToArray()); bool res3 = syntaxNote.IsValid(content3.ToArray()); bool res4 = syntaxNote.IsValid(content4.ToArray()); bool res5 = syntaxNote.IsValid(content5.ToArray()); bool res6 = syntaxNote.IsValid(content6.ToArray()); Assert.IsTrue(res1); Assert.IsTrue(res2); Assert.IsTrue(res3); Assert.IsTrue(res4); Assert.IsTrue(res5); Assert.IsFalse(res6); }
public void SyntaxNote_ListConditional() { //If the first element specified is present, then at least one of the remaining elements must be present //true List <string> content1 = new List <string>() { "01", "02", "03", "04", "", "06" }; List <string> content2 = new List <string>() { "01", "02" }; List <string> content3 = new List <string>() { "01", "02", "", "04", "", "06" }; //false List <string> content4 = new List <string>() { "01", "02", "03", "", "", "", "07" }; List <string> content5 = new List <string>() { "01", "02", "03" }; var syntaxNote = SyntaxNoteFactory.GetSyntaxNote("L030406"); bool res1 = syntaxNote.IsValid(content1.ToArray()); bool res2 = syntaxNote.IsValid(content2.ToArray()); bool res3 = syntaxNote.IsValid(content3.ToArray()); bool res4 = syntaxNote.IsValid(content4.ToArray()); bool res5 = syntaxNote.IsValid(content5.ToArray()); Assert.IsTrue(res1); Assert.IsTrue(res2); Assert.IsTrue(res3); Assert.IsFalse(res4); Assert.IsFalse(res5); }
public void SyntaxNote_Required() { //At least one specified in the relational condition must be present //true List <string> content1 = new List <string>() { "01", "02", "03", "04", "05", "06" }; List <string> content2 = new List <string>() { "01", "02" }; List <string> content3 = new List <string>() { "01", "", "", "04", "", "06" }; //false List <string> content4 = new List <string>() { "01", "", "", "", "05", "06" }; List <string> content5 = new List <string>() { "01" }; var syntaxNote = SyntaxNoteFactory.GetSyntaxNote("R020304"); bool res1 = syntaxNote.IsValid(content1.ToArray()); bool res2 = syntaxNote.IsValid(content2.ToArray()); bool res3 = syntaxNote.IsValid(content3.ToArray()); bool res4 = syntaxNote.IsValid(content4.ToArray()); bool res5 = syntaxNote.IsValid(content5.ToArray()); Assert.IsTrue(res1); Assert.IsTrue(res2); Assert.IsTrue(res3); Assert.IsFalse(res4); Assert.IsFalse(res5); }
public static void ValidateSegment(EdiSegment seg, int rowPos, IValidatedEntity validationScope) { int i = 0; foreach (var dataElement in seg.Content) { if (dataElement is EdiSimpleDataElement) { EdiSimpleDataElement el = (EdiSimpleDataElement)dataElement; ValidateSimpleDataElement(el, seg.Name, rowPos, i + 1, validationScope); } else if (dataElement is EdiCompositeDataElement) { EdiCompositeDataElement c = (EdiCompositeDataElement)dataElement; foreach (EdiSimpleDataElement el in c.Content) { ValidateSimpleDataElement(el, seg.Name, rowPos, i + 1, validationScope); } } i++; } var syntaxNotes = ((MapSegment)seg.Definition).SyntaxNotes; if (syntaxNotes != null && syntaxNotes.Count > 0) { foreach (var sn in syntaxNotes) { var syntaxNote = SyntaxNoteFactory.GetSyntaxNote(sn); if (!syntaxNote.IsValid(seg.Content.Select(e => e.Val).ToArray())) { AddError(seg.Name, rowPos, null, $"Syntax note violation '{syntaxNote}'", validationScope); } } } }