public void GivenGeneralLedgerAccount_WhenAddedToChartOfAccounts_ThenAccountNumberMustBeUnique()
        {
            var glAccount0001 = new GeneralLedgerAccountBuilder(this.Session)
                                .WithAccountNumber("0001")
                                .WithName("GeneralLedgerAccount")
                                .WithBalanceSheetAccount(true)
                                .WithSide(new DebitCreditConstants(this.Session).Debit)
                                .WithGeneralLedgerAccountType(new GeneralLedgerAccountTypeBuilder(this.Session).WithDescription("accountType").Build())
                                .WithGeneralLedgerAccountGroup(new GeneralLedgerAccountGroupBuilder(this.Session).WithDescription("accountGroup").Build())
                                .Build();

            var glAccount0001Dup = new GeneralLedgerAccountBuilder(this.Session)
                                   .WithAccountNumber("0001")
                                   .WithName("GeneralLedgerAccount duplicate number")
                                   .WithBalanceSheetAccount(true)
                                   .WithSide(new DebitCreditConstants(this.Session).Debit)
                                   .WithGeneralLedgerAccountType(new GeneralLedgerAccountTypeBuilder(this.Session).WithDescription("accountType").Build())
                                   .WithGeneralLedgerAccountGroup(new GeneralLedgerAccountGroupBuilder(this.Session).WithDescription("accountGroup").Build())
                                   .Build();

            var chart = new ChartOfAccountsBuilder(this.Session).WithName("name").WithGeneralLedgerAccount(glAccount0001).Build();

            Assert.False(this.Session.Derive(false).HasErrors);

            chart.AddGeneralLedgerAccount(glAccount0001Dup);

            var derivationLog   = this.Session.Derive(false);
            var expectedMessage = ErrorMessages.AccountNumberUniqueWithinChartOfAccounts;

            Assert.Equal(derivationLog.Errors[0].Message, expectedMessage);

            new ChartOfAccountsBuilder(this.Session).WithName("another Chart").WithGeneralLedgerAccount(glAccount0001Dup).Build();

            Assert.False(this.Session.Derive(false).HasErrors);
        }
        public void GivenGeneralLedgerAccount_WhenAddedToChartOfAccounts_ThenAccountNumberMustBeUnique()
        {
            var glAccount0001 = new GeneralLedgerAccountBuilder(this.DatabaseSession)
                .WithAccountNumber("0001")
                .WithName("GeneralLedgerAccount")
                .WithBalanceSheetAccount(true)
                .WithSide(new DebitCreditConstants(this.DatabaseSession).Debit)
                .WithGeneralLedgerAccountType(new GeneralLedgerAccountTypeBuilder(this.DatabaseSession).WithDescription("accountType").Build())
                .WithGeneralLedgerAccountGroup(new GeneralLedgerAccountGroupBuilder(this.DatabaseSession).WithDescription("accountGroup").Build())
                .Build();

            var glAccount0001Dup = new GeneralLedgerAccountBuilder(this.DatabaseSession)
                .WithAccountNumber("0001")
                .WithName("GeneralLedgerAccount duplicate number")
                .WithBalanceSheetAccount(true)
                .WithSide(new DebitCreditConstants(this.DatabaseSession).Debit)
                .WithGeneralLedgerAccountType(new GeneralLedgerAccountTypeBuilder(this.DatabaseSession).WithDescription("accountType").Build())
                .WithGeneralLedgerAccountGroup(new GeneralLedgerAccountGroupBuilder(this.DatabaseSession).WithDescription("accountGroup").Build())
                .Build();

            var chart = new ChartOfAccountsBuilder(this.DatabaseSession).WithName("name").WithGeneralLedgerAccount(glAccount0001).Build();

            Assert.IsFalse(this.DatabaseSession.Derive().HasErrors);

            chart.AddGeneralLedgerAccount(glAccount0001Dup);

            var derivationLog = this.DatabaseSession.Derive();
            var expectedMessage = ErrorMessages.AccountNumberUniqueWithinChartOfAccounts;

            Assert.AreEqual(derivationLog.Errors[0].Message, expectedMessage);

            new ChartOfAccountsBuilder(this.DatabaseSession).WithName("another Chart").WithGeneralLedgerAccount(glAccount0001Dup).Build();

            Assert.IsFalse(this.DatabaseSession.Derive().HasErrors);
        }
Exemple #3
0
        public void GivenChartOfAccounts_WhenDeriving_ThenPostBuildRelationsMustExist()
        {
            var chartOfAccounts = new ChartOfAccountsBuilder(this.Session)
                                  .WithName("ChartOfAccounts")
                                  .Build();

            Assert.True(chartOfAccounts.ExistUniqueId);
        }
Exemple #4
0
        public void GivenChartOfAccounts_WhenDeriving_ThenPostBuildRelationsMustExist()
        {
            var chartOfAccounts = new ChartOfAccountsBuilder(this.DatabaseSession)
                .WithName("ChartOfAccounts")
                .Build();

            Assert.IsTrue(chartOfAccounts.ExistUniqueId);
        }
Exemple #5
0
        public void GivenChartOfAccounts_WhenDeriving_ThenRequiredRelationsMustExist()
        {
            var builder = new ChartOfAccountsBuilder(this.DatabaseSession);
            builder.Build();

            Assert.IsTrue(this.DatabaseSession.Derive().HasErrors);

            this.DatabaseSession.Rollback();

            builder.WithName("ChartOfAccounts");
            builder.Build();

            Assert.IsFalse(this.DatabaseSession.Derive().HasErrors);
        }
Exemple #6
0
        public void GivenChartOfAccounts_WhenDeriving_ThenRequiredRelationsMustExist()
        {
            var builder = new ChartOfAccountsBuilder(this.Session);

            builder.Build();

            Assert.True(this.Session.Derive(false).HasErrors);

            this.Session.Rollback();

            builder.WithName("ChartOfAccounts");
            builder.Build();

            Assert.False(this.Session.Derive(false).HasErrors);
        }