public static void Validate_QuantityIsNull_HasError(
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel();

            var result = validator.TestValidate(model);

            result
            .ShouldHaveValidationErrorFor(m => m.Quantity)
            .WithErrorMessage($"{nameof(OrderItemRecipientModel.Quantity)}Required");
        }
        public static void Validate_OdsCodeIsValid_DoesNotHaveError(
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                OdsCode = new string('A', 8)
            };

            var result = validator.TestValidate(model);

            result.ShouldNotHaveValidationErrorFor(m => m.OdsCode);
        }
        public static void Validate_QuantityIsValid_DoesNotHaveError(
            int quantity,
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                Quantity = quantity
            };

            var result = validator.TestValidate(model);

            result.ShouldNotHaveValidationErrorFor(m => m.Quantity);
        }
        public static void Validate_OdsCodeIsTooLong_HasError(
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                OdsCode = new string('A', 9)
            };

            var result = validator.TestValidate(model);

            result
            .ShouldHaveValidationErrorFor(m => m.OdsCode)
            .WithErrorMessage($"{nameof(OrderItemRecipientModel.OdsCode)}TooLong");
        }
        public static void Validate_QuantityIsMaxInt_HasError(
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                Quantity = int.MaxValue
            };

            var result = validator.TestValidate(model);

            result
            .ShouldHaveValidationErrorFor(m => m.Quantity)
            .WithErrorMessage($"{nameof(OrderItemRecipientModel.Quantity)}LessThanMax");
        }
        public static void Validate_OdsCodeIsEmpty_HasError(
            string odsCode,
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                OdsCode = odsCode
            };

            var result = validator.TestValidate(model);

            result
            .ShouldHaveValidationErrorFor(m => m.OdsCode)
            .WithErrorMessage($"{nameof(OrderItemRecipientModel.OdsCode)}Required");
        }
        public static void Validate_QuantityIsZeroOrLess_HasError(
            int quantity,
            OrderItemRecipientModelValidator validator)
        {
            var model = new OrderItemRecipientModel {
                Quantity = quantity
            };

            var result = validator.TestValidate(model);

            result
            .ShouldHaveValidationErrorFor(m => m.Quantity)
            .WithErrorMessage($"{nameof(OrderItemRecipientModel.Quantity)}GreaterThanZero");
        }