public void TryValidate_SuccesfulValidation_ShouldReturnTrue()
        {
            var property = typeof(TestArguments).GetTypeInfo().DeclaredProperties.First(a => a.Name == "RequiredString");

            var requiredArgumentValidator = new RequiredArgumentValidator();

            var result = requiredArgumentValidator.TryValidate(property, true, "value", out _);

            Assert.True(result);
        }
        public void TryValidate_PropertyRequiredAndNotEmptyAndArgumentSuppliedButEmpty_ReturnsFalse()
        {
            var property = typeof(TestArguments).GetTypeInfo().DeclaredProperties.First(a => a.Name == "RequiredString");

            var requiredArgumentValidator = new RequiredArgumentValidator();

            var result = requiredArgumentValidator.TryValidate(property, true, "", out _);

            Assert.False(result);
        }
        public void TryValidate_ValidationFail_ShouldCreateValidationError()
        {
            var property = typeof(TestArguments).GetTypeInfo().DeclaredProperties.First(a => a.Name == "RequiredString");

            var requiredArgumentValidator = new RequiredArgumentValidator();

            var result = requiredArgumentValidator.TryValidate(property, false, "", out var validationError);

            Assert.False(result);
            Assert.NotNull(validationError);
        }