public void Validate_partnerName_length_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PartnerName = @"0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                123456";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Nombre de cliente' tiene longitud incorrecta");
        }
        public void Validate_succeed()
        {
            IInputInvoice entity = this.CreateEntity();

            var errors = this.validation.Validate(entity).ToList();

            errors.Count.Should().Be(0);
        }
        public void Validate_empty_countryCode_succeed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.CountryCode = String.Empty;

            var errors = this.validation.Validate(entity).ToList();

            errors.Count.Should().Be(0);
        }
        public void Validate_PostalCode_format_failed(string input)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PostalCode = input;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Código postal' tiene formato incorrecto");
        }
        public void Validate_source_required_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.Source = "";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Origen', obligatorio contenido");
        }
        public void Validate_VatNumber_length_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.VatNumber = "123456789012345678901";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'NIF' tiene longitud incorrecta");
        }
        public void Validate_CountryCode_format_failed(string input)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.CountryCode = input;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Código país' tiene longitud incorrecta");
        }
        public void Validate_VatType_format_failed(int input)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.VatType = input;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Tipo de documento' tiene formato incorrecto");
        }
        public void Validate_account_length_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PartnerAccount = "123456789012345678901";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Cuenta de cliente' tiene longitud incorrecta");
        }
        public void Validate_account_numeric_failed(string input)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PartnerAccount = input;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Cuenta de cliente' tiene formato incorrecto");
        }
        public void Validate_invoice_number_required_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.InvoiceNumber = "";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Número de factura', obligatorio contenido");
        }
        public void Validate_transaction_date_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.TransactionDate = DateTime.MinValue;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Fecha de operación' tiene formato incorrecto");
        }
        public void Validate_account_required_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PartnerAccount = "";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Cuenta de cliente', obligatorio contenido");
        }
        public void Validate_journal_date_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.JournalDate = DateTime.MinValue;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Fecha de asiento' tiene formato incorrecto");
        }
        public void Validate_invoice_date_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.InvoiceDate = DateTime.MinValue;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Fecha de factura', obligatorio contenido");
        }
        public void Validate_pending_and_satisfied_succeed(double?pending, double?satisfied)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PendingAmount   = (decimal?)pending;
            entity.SatisfiedAmount = (decimal?)satisfied;

            var errors = this.validation.Validate(entity).ToList();

            errors.Count.Should().Be(0);
        }
        public void Validate_pending_and_satisfied_failed(double?pending, double?satisfied)
        {
            IInputInvoice entity = this.CreateEntity();

            entity.PendingAmount   = (decimal?)pending;
            entity.SatisfiedAmount = (decimal?)satisfied;

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Solo un importe informado' tiene valor incorrecto");
        }
        public void Validate_invoice_number_length_failed()
        {
            IInputInvoice entity = this.CreateEntity();

            entity.InvoiceNumber = @"0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0123456789
                                0";

            var errors = this.validation.Validate(entity);

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Número de factura' tiene longitud incorrecta");
        }