Example #1
0
 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());
 }
Example #2
0
        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>(); });
        }
Example #3
0
        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>();
        }
Example #5
0
        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>(); });
        }
Example #6
0
        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}"));
        }