public void Creating_WithNegativeValue_SetsItAsPositive() { var sut = new DebitBuilder().WithNetSum(-100).Build(); var actual = sut.NetSum; Assert.AreEqual(100m, actual); }
public void Creating_WithoutLineSumsBeingZero_ThrowsException() { var credit = new CreditBuilder().WithNetSum(100).WithVat(24).Build(); var debit = new DebitBuilder().WithNetSum(10).WithVat(10).Build(); var sut = new AccountingEntryBuilder().WithLine(credit).WithLine(debit); Assert.IsFalse(AccountingEntry.IsValid(new AccountingEntryLine[] { credit, debit })); Assert.Throws <ArgumentException>(() => sut.Build()); }
public void AskingLines_WithLinesHavingDifferentVats_OrdersThemCorrectly() { var vat24 = new CreditBuilder().WithNetSum(100).WithVat(24).Build(); var vat14 = new CreditBuilder().WithNetSum(100).WithVat(14).Build(); var vat10 = new CreditBuilder().WithNetSum(100).WithVat(10).Build(); var vat0 = new CreditBuilder().WithNetSum(100).WithVat(0).Build(); var noVat = new DebitBuilder().WithNetSum(448).WithVat(null).Build(); var sut = new AccountingEntryBuilder() .WithLine(vat14) .WithLine(vat24) .WithLine(vat0) .WithLine(noVat) .WithLine(vat10) .Build(); var actual = sut.GetLines(); var expected = new List <AccountingEntryLine>() { noVat, vat0, vat10, vat14, vat24 }; CollectionAssert.AreEqual(expected, actual); }