public void GetEmailBooking(string email, string costCentre, decimal total, string paymentMethod, string vendor, string description, string date) { var sut = CreateSut(); var actual = sut.GetEmailBooking(email); var expected = new EmailBooking(costCentre, total, paymentMethod, vendor, description, date); var structuralEqualityComparer = new StructuralEqualityComparer(); Assert.That(actual, Is.EqualTo(expected).Using(structuralEqualityComparer)); }
public void GetEmailBooking_WithMissingCostCentre_Should_DefaultFieldTo_UNKNOWN(string email, decimal total) { var sut = CreateSut(); var actual = sut.GetEmailBooking(email); var expected = new EmailBooking("UNKNOWN", total, "", "", "", ""); var structuralEqualityComparer = new StructuralEqualityComparer(); Assert.That(actual, Is.EqualTo(expected).Using(structuralEqualityComparer)); }
//Decorator pattern. Using composition over inheritence public DetailBooking(EmailBooking emailBooking, decimal gst, decimal totalExcludingGst) { CostCentre = emailBooking.CostCentre; PaymentMethod = emailBooking.PaymentMethod; Vendor = emailBooking.Vendor; Description = emailBooking.Description; Date = emailBooking.Date; Total = emailBooking.Total; Gst = gst; TotalExcludingGst = totalExcludingGst; }