public ValidationContext(IValidationContextOptions options = null) { Id = Guid.NewGuid(); Options = OptionsService.GetVerifiedValidationContextOptions(options ?? new ValidationContextOptions()); SpecificationsRepository = new SpecificationsRepository(Options.Specifications); ValidatorsFactory = new ValidatorsFactory(SpecificationsRepository); TranslatorsRepository = new TranslatorsRepository(Options.Translations.ToArray()); }
public void Get_Should_ThrowException_SpecificationNotFound() { var specificationsRepository = new SpecificationsRepository(new Dictionary <Type, object> { { typeof(User), new Specification <User>(c => c) } }); specificationsRepository.Get <User>(); Assert.Throws <SpecificationNotFoundException>(() => { specificationsRepository.Get <Company>(); }); }
public void RegisteredTypes_Should_GatherRegisteredTypes(IReadOnlyDictionary <Type, object> specifications, IReadOnlyCollection <Type> expectedRegisteredTypes) { var specificationsRepository = new SpecificationsRepository(specifications); Assert.Equal(expectedRegisteredTypes.Count(), specificationsRepository.Types.Count()); foreach (var expected in expectedRegisteredTypes) { Assert.Contains(expected, specificationsRepository.Types); } }
public void GetSpecificationById_GivenNullOrEmptyUrl_ThrowsArgumentException() { //Arrange SpecificationsRepository specificationsRepository = CreateSpecificationsRepository(); //Act Func <Task> test = async() => await specificationsRepository.GetSpecificationSummaryById(""); //Assert test .Should().ThrowExactly <ArgumentNullException>(); }
public void Get_Should_ThrowException_When_InvalidSpecificationRegistered() { var specificationsRepository = new SpecificationsRepository(new Dictionary <Type, object> { { typeof(User), new Specification <User>(c => c) }, { typeof(Company), new Specification <User>(c => c) } }); specificationsRepository.Get <User>(); Assert.Throws <InvalidSpecificationTypeException>(() => { specificationsRepository.Get <Company>(); }); }
public void Get_Should_ReturnSpecification() { var userSpecification = new Specification <User>(c => c); var addressSpecification = new Specification <Company>(c => c); var specificationsRepository = new SpecificationsRepository(new Dictionary <Type, object> { { typeof(User), userSpecification }, { typeof(Company), addressSpecification } }); Assert.Same(userSpecification, specificationsRepository.Get <User>()); Assert.Same(addressSpecification, specificationsRepository.Get <Company>()); }
async public Task GetSpecificationById_GivenSpecificationId_CallsWithCorrectUrl() { //Arrange const string specificationId = "spec-id"; ISpecificationsApiClientProxy clientProxy = CreateApiClientProxy(); SpecificationsRepository specificationsRepository = CreateSpecificationsRepository(clientProxy); //Act await specificationsRepository.GetSpecificationSummaryById(specificationId); //Assert await clientProxy .Received(1) .GetAsync <SpecificationSummary>(Arg.Is($"specs/specification-summary-by-id?specificationId={specificationId}")); }