public static void ShouldMatchAmounts(this IErrorsHolder errorsHolder, IReadOnlyDictionary <string, IReadOnlyList <ValidationTestData.ErrorTestCase> > test)
        {
            errorsHolder.Should().NotBeNull();
            errorsHolder.Errors.Should().NotBeNull();
            test.Should().NotBeNull();

            errorsHolder.Errors.Should().HaveCount(test.Count);

            foreach (var testPair in test)
            {
                errorsHolder.Errors.Keys.Should().Contain(testPair.Key);
                errorsHolder.Errors[testPair.Key].Should().NotBeNull();
                errorsHolder.Errors[testPair.Key].Should().HaveCount(testPair.Value.Count);
            }
        }
Exemple #2
0
        public void Feed(IErrorsHolder errorsHolder)
        {
            if (!ShouldFeed)
            {
                return;
            }

            ThrowHelper.NullArgument(errorsHolder, nameof(errorsHolder));

            var maxCapacities = new Dictionary <string, int>(errorsHolder.Errors.Count);

            foreach (var pair in errorsHolder.Errors)
            {
                maxCapacities.Add(pair.Key, errorsHolder.Errors[pair.Key].Count);
            }

            _maxCapacities = maxCapacities;

            ErrorsPathsCapacity = errorsHolder.Errors.Count;

            ShouldFeed = false;
        }
Exemple #3
0
        public void Should_CreateModelScheme_And_FeedCapacityInfo_When_ShouldFeed_IsTrue()
        {
            Specification <TestClass> classSpecification = c => c
                                                           .Optional()
                                                           .RuleTemplate(x => false, "Invalid value template message {argName}", Arg.Number("argName", 666L))
                                                           .Rule(x => false).WithMessage("Invalid value custom message")
                                                           .Rule(x => false).WithCode("CODE1");

            var feedableCapacityInfo = Substitute.For <IFeedableCapacityInfo>();

            IErrorsHolder errorsHolders = null;

            feedableCapacityInfo.ShouldFeed.Returns(true);

            feedableCapacityInfo.When(x => x.Feed(NSubstitute.Arg.Any <IErrorsHolder>())).Do(callInfo =>
            {
                errorsHolders = callInfo.Arg <IErrorsHolder>();
            });

            ModelSchemeFactory.Create(classSpecification, feedableCapacityInfo);

            feedableCapacityInfo.ReceivedWithAnyArgs(1).Feed(default);