public void It_should_return_correct_value_for_exam_with_side_costs( int aproachNumber, decimal expectedPriceMultiplicator) { // Given const decimal accommodationCost = 200; const decimal transportCost = 300; var sideCosts = new SideCosts { AccommodationCost = accommodationCost, DailyAllowanceCost = transportCost, IncludeAccommodationCost = true, IncludeDailyAllowanceCost = true }; var exam = new WishListItem( WishListItemType.Exam, BasePrice, VendorName, approachNumber: aproachNumber, sideCosts: sideCosts); var expectedExamPrice = BasePrice * expectedPriceMultiplicator; var expectedTotalPrice = expectedExamPrice + accommodationCost + transportCost; // When var result = exam.CalculateCost(); // Then Assert.That(result, Is.EqualTo(expectedTotalPrice)); }
public void It_should_return_correct_value_for_training_with_side_costs() { // Given const decimal accommodationCost = 200; const decimal transportCost = 300; var sideCosts = new SideCosts { AccommodationCost = accommodationCost, DailyAllowanceCost = transportCost, IncludeAccommodationCost = true, IncludeDailyAllowanceCost = true }; var training = new WishListItem( WishListItemType.Training, BasePrice, sideCosts: sideCosts); const decimal expectedResult = BasePrice + accommodationCost + transportCost; // When var result = training.CalculateCost(); // Then Assert.That(result, Is.EqualTo(expectedResult)); }
public void It_should_return_correct_value_for_foreing_conference_with_side_costs() { // Given const decimal accommodationCost = 200; const decimal transportCost = 300; var sideCosts = new SideCosts { AccommodationCost = accommodationCost, DailyAllowanceCost = transportCost, IncludeAccommodationCost = true, IncludeDailyAllowanceCost = true }; var conference = new WishListItem( WishListItemType.Conference, BasePrice, location: LocationType.Foreign, sideCosts: sideCosts); const decimal conferenceCost = BasePrice * ForeignConferenceMultiplicator; const decimal expectedResult = conferenceCost + accommodationCost + transportCost; // When var result = conference.CalculateCost(); // Then Assert.That(result, Is.EqualTo(expectedResult)); }
private decimal CalculateSideCosts(SideCosts sideCosts) { decimal totalSideCosts = 0; if (sideCosts.IncludeAccommodationCost) { totalSideCosts += sideCosts.AccommodationCost; } if (sideCosts.IncludeDailyAllowanceCost) { totalSideCosts += sideCosts.DailyAllowanceCost; } if (sideCosts.IncludeTransportCost) { totalSideCosts += sideCosts.TransportCost; } return(totalSideCosts); }
#pragma warning restore 649 public WishListItem( WishListItemType wishListItemType, decimal baseItemCost, string vendorName = null, LocationType location = LocationType.Local, int approachNumber = 0, DateTime?startDate = null, DateTime?endDate = null, SideCosts sideCosts = null, IDictionary <string, decimal> vendorNamesWithDiscounts = null) { WishListItemType = wishListItemType; BaseItemCost = baseItemCost; VendorName = vendorName; Location = location; ApproachNumber = approachNumber; StartDate = startDate; EndDate = endDate; SideCosts = sideCosts ?? new SideCosts(); VendorsWithDiscounts = vendorNamesWithDiscounts ?? new Dictionary <string, decimal>(); }
protected override decimal CalculateSideCosts(SideCosts sideCosts) { return(0); }