public async Task ValidateChangeSetItemAsyncValidates()
        {
            var testClass         = new ConventionBasedChangeSetItemValidator();
            var context           = new SubmitContext(new EmptyApi(serviceProvider), new ChangeSet());
            var cancellationToken = CancellationToken.None;

            dataModificationItem.Resource = new ValidatableEntity()
            {
                Property = null,
                Number   = -1,
            };
            var validationResults = new Collection <ChangeSetItemValidationResult>();
            await testClass.ValidateChangeSetItemAsync(context, dataModificationItem, validationResults, cancellationToken);

            validationResults.Should().SatisfyRespectively(
                first =>
            {
                first.PropertyName.Should().Be(nameof(ValidatableEntity.Property));
                first.Message.ToUpperInvariant().Should().Contain("REQUIRED");
            },
                second =>
            {
                second.PropertyName.Should().Be(nameof(ValidatableEntity.Number));
                second.Message.ToUpperInvariant().Should().Contain("BETWEEN");
            });
        }
 public async Task CannotCallValidateChangeSetItemAsyncWithNullContext()
 {
     var         testClass = new ConventionBasedChangeSetItemValidator();
     Func <Task> act       = () => testClass.ValidateChangeSetItemAsync(
         default(SubmitContext),
         dataModificationItem,
         new Collection <ChangeSetItemValidationResult>(),
         CancellationToken.None);
     await act.Should().ThrowAsync <ArgumentNullException>();
 }
        public async Task CanCallValidateChangeSetItemAsync()
        {
            var testClass         = new ConventionBasedChangeSetItemValidator();
            var context           = new SubmitContext(new EmptyApi(serviceProvider), new ChangeSet());
            var cancellationToken = CancellationToken.None;

            var validationResults = new Collection <ChangeSetItemValidationResult>();
            await testClass.ValidateChangeSetItemAsync(context, dataModificationItem, validationResults, cancellationToken);

            validationResults.Should().BeEmpty();
        }
 public async Task CannotCallValidateChangeSetItemAsyncWithNullValidationResults()
 {
     var         testClass = new ConventionBasedChangeSetItemValidator();
     var         context   = new SubmitContext(new EmptyApi(serviceProvider), new ChangeSet());
     Func <Task> act       = () => testClass.ValidateChangeSetItemAsync(
         context,
         dataModificationItem,
         default(Collection <ChangeSetItemValidationResult>),
         CancellationToken.None);
     await act.Should().ThrowAsync <ArgumentNullException>();
 }
        public void CanConstruct()
        {
            var instance = new ConventionBasedChangeSetItemValidator();

            instance.Should().NotBeNull();
        }