public ReferenceValidator(ModelMetadata modelMetadata, ControllerContext controllerContext, PropertyInfo targetProperty, ReferenceValidationAttribute targetAttribute) : base(modelMetadata, controllerContext) { if (targetProperty == null) throw new ArgumentNullException("targetProperty"); if (targetAttribute == null) throw new ArgumentNullException("target attribute"); _targetProperty = targetProperty; _referenceValidationAttribute = targetAttribute; if (String.IsNullOrEmpty(targetAttribute.ErrorMessage)) ErrorMessage = _defaultErrorMessage; else ErrorMessage = targetAttribute.ErrorMessage; }
public void SetUp() { PropertyInfo = typeof(SomeEntity).GetProperties().First(e => e.Name == "LoanPurposeTypes"); ControllerContext = Substitute.For<ControllerContext>(); Model = new SomeEntity(); Metadata = new ModelMetadata(Substitute.For<ModelMetadataProvider>(), typeof(SomeEntity), () => Model, typeof(SomeEntity), "LoanPurposeTypes"); RefValidationAttribute = new ReferenceValidationAttribute(ReferenceType.LoanPurposeTypes); Target = new ReferenceValidator(Metadata, ControllerContext, PropertyInfo, RefValidationAttribute); IKernel kernel = new StandardKernel(); ReferenceRepository = Substitute.For<IReferenceRepository>(); kernel.Bind<IReferenceRepository>().ToConstant(ReferenceRepository); kernel.Bind<IReferenceManagement>().To<ReferenceManagement>().InSingletonScope(); kernel.Bind<ICacheService>().To<FakeCacheService>(); Singletones.NinjectKernel = kernel; ReferenceRepository.GetLoanPurposeTypes().Returns(new RefLoanPurposeType[] { new RefLoanPurposeType() { Id = 1 } }); }