public void SetInitialAmount(AmountState initialAmount) { if (initialAmount == null || initialAmount.Amount.Currency == Currency) { InitialAmount = initialAmount; } else { throw new Exception("Initial amount is in different currency"); } }
public void SetInitialAmount_WithAllInformation_SuccesfullSet() { // Arrange Bill bill = new Bill("PLN"); AmountState initialAmount = new AmountState(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero)); // Act bill.SetInitialAmount(initialAmount); // Assert Assert.AreEqual(initialAmount.Amount, bill.InitialAmount.Amount); Assert.AreEqual(initialAmount.Date, bill.InitialAmount.Date); }
public void SetInitialAmount_SetNull_InitialAmountCleared() { // Arrange Bill bill = new Bill("PLN"); AmountState initialAmount = new AmountState(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero)); bill.SetInitialAmount(initialAmount); // Act bill.SetInitialAmount(null); // Assert Assert.IsNull(bill.InitialAmount); }
public void SetInitialAmount_WithDifferentCurrency_ExceptionThrown() { // Arrange Bill bill = new Bill("PLN"); AmountState initialAmount = new AmountState(new Money(100, "USD"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero)); // Act void setInitialAmount() => bill.SetInitialAmount(initialAmount); // Assert Exception ex = Assert.Throws <Exception>(() => setInitialAmount()); Assert.AreEqual(ex.Message, "Initial amount is in different currency"); }