public void Invalid_CourseWithoutQualification() { var ev = this.GetElementValidator_Course(); var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./mlo:qualification)", ExceptionMessage = "The qualification element is mandatory if a course leads to awards of a qualification", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Warning, Minimum = 1, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(System.Xml.Linq.XDocument.Parse(Resources.IValidationService.Invalid.ElementValidation.Courses.WithoutQualification).Root) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: XCRI.Validation.ContentValidation.ValidationStatus.Warning, expectedInstances: 1, expectedFailedCount: 1, expectedSuccessfulCount: 0 ); }
public void Invalid_Presentation_WithoutStart() { var ev = this.GetElementValidator_Presentation(); var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./mlo:start)", ExceptionMessage = "All presentations should contain a start element in the MLO namespace", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Warning, Minimum = 1, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(System.Xml.Linq.XDocument.Parse(Resources.IValidationService.Invalid.ElementValidation.Presentations.WithoutStart).Root) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: XCRI.Validation.ContentValidation.ValidationStatus.Warning, expectedInstances: 1, expectedFailedCount: 1, expectedSuccessfulCount: 0 ); }
public void Invalid_CourseWithMloLevel() { var ev = this.GetElementValidator_Course(); var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./mlo:level)", ExceptionMessage = "The level element is included for compatibility with EN15982 but should not be used", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Warning, Maximum = 0, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(System.Xml.Linq.XDocument.Parse(Resources.IValidationService.Invalid.ElementValidation.Courses.WithMloLevel).Root) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: XCRI.Validation.ContentValidation.ValidationStatus.Warning, expectedInstances: 1, expectedFailedCount: 1, expectedSuccessfulCount: 0 ); }
public void Valid_Presentation_WithVenue() { var ev = this.GetElementValidator_Presentation(); var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./xcri12:venue)", ExceptionMessage = "All presentations must contain one - and only one - venue", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Exception, Minimum = 1, Maximum = 1, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(System.Xml.Linq.XDocument.Parse(Resources.IValidationService.Valid.ElementValidation.Presentations.WithVenue).Root) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: XCRI.Validation.ContentValidation.ValidationStatus.Passed, expectedInstances: 1, expectedFailedCount: 0, expectedSuccessfulCount: 1 ); }
public void MinimumSaved() { XCRI.Validation.ContentValidation.NumberValidator v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "number(//number/text())" }; Assert.AreNotEqual<decimal?>(v.Minimum, 25); v.Minimum = 25; Assert.AreEqual<decimal?>(v.Minimum, 25); }
public void MaximumSaved() { XCRI.Validation.ContentValidation.NumberValidator v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "number(//number/text())" }; Assert.AreNotEqual <decimal?>(v.Maximum, 25); v.Maximum = 25; Assert.AreEqual <decimal?>(v.Maximum, 25); }
public void TestMultipleIdentifiersWithoutXsiTypeDoNotExistUnderElement ( XCRI.Validation.ContentValidation.ElementValidator ev, System.Xml.Linq.XElement element, int expectedFailures, int expectedSuccesses ) { var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./dc:identifier[not(@xsi:type)])", ExceptionMessage = "All courses must contain an identifier without an xsi:type attribute", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Exception, Minimum = 0, Maximum = 1, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(element) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: (0 == expectedFailures) ? XCRI.Validation.ContentValidation.ValidationStatus.Passed : XCRI.Validation.ContentValidation.ValidationStatus.Exception, expectedInstances: expectedFailures + expectedSuccesses, expectedFailedCount: expectedFailures, expectedSuccessfulCount: expectedSuccesses ); ev.Validators.Clear(); }
public void TestLocationExistsUnderElement ( XCRI.Validation.ContentValidation.ElementValidator ev, System.Xml.Linq.XElement element, int expectedFailures, int expectedSuccesses ) { var v = new XCRI.Validation.ContentValidation.NumberValidator() { XPathSelector = "count(./mlo:location)", ExceptionMessage = "All providers must contain a location", FailedValidationStatus = XCRI.Validation.ContentValidation.ValidationStatus.Exception, Minimum = 1, ValidationGroup = "Structure", NamespaceManager = ev.NamespaceManager }; ev.Validators.Add(v); var vr = ev .Validate(element) .Where(r => r.Message == v.ExceptionMessage); Assert.AreEqual <int>(1, vr.Count()); ValidateResults ( result: vr.ElementAt(0), expectedStatus: (0 == expectedFailures) ? XCRI.Validation.ContentValidation.ValidationStatus.Passed : XCRI.Validation.ContentValidation.ValidationStatus.Exception, expectedInstances: expectedFailures + expectedSuccesses, expectedFailedCount: expectedFailures, expectedSuccessfulCount: expectedSuccesses ); ev.Validators.Clear(); }