Example #1
0
        public ValidationResult ValidateResource(EditCurveResource resource)
        {
            var result = new ValidationResult();

            if (resource != null)
            {
                var validator = new CurveValidator();
                var vr        = validator.Validate(resource);

                if (vr.IsValid)
                {
                    result.IsValid = true;
                    return(result);
                }


                if (vr.Errors.Any())
                {
                    foreach (var error in vr.Errors)
                    {
                        result.ErrorMessages.Add(error.PropertyName, error.ErrorMessage);
                    }
                }
            }

            return(result);
        }
Example #2
0
        public void OverlapsRangeFails()
        {
            // Assert
            var start    = new DateTime(1999, 1, 1);
            var finish   = new DateTime(2020, 12, 31);
            var validity = new DateRange(start, finish);
            var system   = new MDM.SourceSystem {
                Name = "Test"
            };
            var curveMapping = new CurveMapping {
                System = system, MappingValue = "1", Validity = validity
            };

            var list = new List <CurveMapping> {
                curveMapping
            };
            var repository = new Mock <IRepository>();

            repository.Setup(x => x.Queryable <CurveMapping>()).Returns(list.AsQueryable());

            var systemList       = new List <MDM.SourceSystem>();
            var systemRepository = new Mock <IRepository <MDM.SourceSystem> >();

            systemRepository.Setup(x => x.Queryable()).Returns(systemList.AsQueryable());

            var overlapsRangeIdentifier = new MDM.Contracts.NexusId
            {
                SystemName = "Test",
                Identifier = "1",
                StartDate  = start.AddHours(10),
                EndDate    = start.AddHours(15)
            };

            var identifierValidator = new NexusIdValidator <CurveMapping>(repository.Object);
            var validatorEngine     = new Mock <IValidatorEngine>();

            validatorEngine.Setup(x => x.IsValid(It.IsAny <MDM.Contracts.NexusId>(), It.IsAny <IList <IRule> >()))
            .Returns((MDM.Contracts.NexusId x, IList <IRule> y) => identifierValidator.IsValid(x, y));
            var validator = new CurveValidator(validatorEngine.Object, repository.Object);

            var curve = new Curve {
                Identifiers = new MDM.Contracts.NexusIdList {
                    overlapsRangeIdentifier
                }
            };

            // Act
            var violations = new List <IRule>();
            var result     = validator.IsValid(curve, violations);

            // Assert
            Assert.IsFalse(result, "Validator succeeded");
        }
Example #3
0
        public void ValidCurvePasses()
        {
            // Assert
            var start  = new DateTime(1999, 1, 1);
            var system = new MDM.SourceSystem {
                Name = "Test"
            };

            var systemList = new List <MDM.SourceSystem> {
                system
            };
            var systemRepository = new Mock <IRepository <MDM.SourceSystem> >();
            var repository       = new StubValidatorRepository();

            systemRepository.Setup(x => x.Queryable()).Returns(systemList.AsQueryable());

            var identifier = new MDM.Contracts.NexusId
            {
                SystemName = "Test",
                Identifier = "1",
                StartDate  = start.AddHours(-10),
                EndDate    = start.AddHours(-5)
            };

            var validatorEngine = new Mock <IValidatorEngine>();
            var validator       = new CurveValidator(validatorEngine.Object, repository);

            var curve = new Curve {
                Identifiers = new MDM.Contracts.NexusIdList {
                    identifier
                }
            };

            this.AddRelatedEntities(curve);

            // Act
            var violations = new List <IRule>();
            var result     = validator.IsValid(curve, violations);

            // Assert
            Assert.IsTrue(result, "Validator failed");
            Assert.AreEqual(0, violations.Count, "Violation count differs");
        }
        public void BadSystemFails()
        {
            // Assert
            var start = new DateTime(1999, 1, 1);
            var finish = new DateTime(2020, 12, 31);
            var validity = new DateRange(start, finish);
            var system = new MDM.SourceSystem { Name = "Test" };
            var curveMapping = new CurveMapping { System = system, MappingValue = "1", Validity = validity };

            var list = new List<CurveMapping> { curveMapping };
            var repository = new Mock<IRepository>();
            repository.Setup(x => x.Queryable<CurveMapping>()).Returns(list.AsQueryable());

            var badSystemIdentifier = new MDM.Contracts.NexusId
            {
                SystemName = "Jim",
                Identifier = "1",
                StartDate = start.AddHours(-10),
                EndDate = start.AddHours(-5)
            };

            var identifierValidator = new NexusIdValidator<CurveMapping>(repository.Object);
            var validatorEngine = new Mock<IValidatorEngine>();
            validatorEngine.Setup(x => x.IsValid(It.IsAny<MDM.Contracts.NexusId>(), It.IsAny<IList<IRule>>()))
                           .Returns((MDM.Contracts.NexusId x, IList<IRule> y) => identifierValidator.IsValid(x, y));
            var validator = new CurveValidator(validatorEngine.Object, repository.Object);

            var curve = new Curve { Identifiers = new MDM.Contracts.NexusIdList { badSystemIdentifier } };

            // Act
            var violations = new List<IRule>();
            var result = validator.IsValid(curve, violations);

            // Assert
            Assert.IsFalse(result, "Validator succeeded");
        }
        public void ValidCurvePasses()
        {
            // Assert
            var start = new DateTime(1999, 1, 1);
            var system = new MDM.SourceSystem { Name = "Test" };

            var systemList = new List<MDM.SourceSystem> { system };
            var systemRepository = new Mock<IRepository<MDM.SourceSystem>>();
            var repository = new StubValidatorRepository();

            systemRepository.Setup(x => x.Queryable()).Returns(systemList.AsQueryable());

            var identifier = new MDM.Contracts.NexusId
            {
                SystemName = "Test",
                Identifier = "1",
                StartDate = start.AddHours(-10),
                EndDate = start.AddHours(-5)
            };

            var validatorEngine = new Mock<IValidatorEngine>();
            var validator = new CurveValidator(validatorEngine.Object, repository);

            var curve = new Curve { Identifiers = new MDM.Contracts.NexusIdList { identifier } };
            this.AddRelatedEntities(curve);

            // Act
            var violations = new List<IRule>();
            var result = validator.IsValid(curve, violations);

            // Assert
            Assert.IsTrue(result, "Validator failed");
            Assert.AreEqual(0, violations.Count, "Violation count differs");
        }