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); } }
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; }
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);