public void Validate_account_description_length_failed()
        {
            IJournalLine entity = this.CreateEntity();

            entity.AccountDescription = @"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 'Descripción cuenta' tiene longitud incorrecta");
        }
        public void Validate_concept_length_failed()
        {
            IJournalLine entity = this.CreateEntity();

            entity.Concept = @"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 'Concepto' tiene longitud incorrecta");
        }
        public void Validate_succeed()
        {
            IJournalLine entity = this.CreateEntity();

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

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

            entity.AccountDescription = String.Empty;

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

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Descripción cuenta', obligatorio contenido");
        }
        public void Validate_account_numeric_failed(string input)
        {
            IJournalLine entity = this.CreateEntity();

            entity.Account = input;

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

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

            entity.Account = "";

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

            errors.Should().Contain(x => !x.IsValid && x.Code == "El campo 'Cuenta', obligatorio contenido");
        }
        public void Validate_concept_alphanumeric_succeed(string input)
        {
            IJournalLine entity = this.CreateEntity();

            entity.Concept = input;

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

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

            entity.Concept = "";

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

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

            entity.Document = null;

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

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

            entity.Debit  = 1;
            entity.Credit = 1;

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

            errors.Should().Contain(x => !x.IsValid && x.Code == "Los importes no son correctos");
        }
 public static bool HasAmount(this IJournalLine source)
 {
     return(source.Debit != 0 || source.Credit != 0);
 }
 public static decimal Amount(this IJournalLine source)
 {
     return(source.IsAmountOnDebit() ? source.Debit : source.Credit);
 }
 public static bool IsAmountOnCredit(this IJournalLine source)
 {
     return(source.Credit != 0);
 }
 public static bool HasValidAmount(this IJournalLine source)
 {
     return((source.Debit != 0 && source.Credit == 0) || (source.Debit == 0 && source.Credit != 0));
 }