コード例 #1
0
        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
            );
        }
コード例 #3
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
            );
        }
コード例 #5
0
 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);
 }
コード例 #6
0
 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);
 }
コード例 #7
0
        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();
        }
コード例 #8
0
        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();
        }