public void CreateReservation() { // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.SEQUENCE, Sequence = 5 }; Movie movie = new Movie("THE BATMAN", TimeSpan.FromMinutes(300), Money.Wons(14000), Money.Wons(2000), dc); Screening screening = new Screening() { Movie = movie, Sequence = 5, WhenScreened = new DateTime(2022, 3, 12, 18, 00, 00) }; Customer customer = new Customer("jongfeel", "0"); // Action Reservation reservation = new ReservationAgency().Reserve(screening, customer, 1); // Assert Assert.IsNotNull(new ReservationAgency().Reserve(screening, customer, 1)); Assert.AreEqual(reservation.Customer, customer); Assert.AreEqual(reservation.Screening, screening); Assert.AreEqual(reservation.Fee, Money.Wons(12000)); Assert.AreEqual(reservation.AudienceCount, 1); }
public void IsDiscountable_NoDiscountCondition() { // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.SEQUENCE, Sequence = 2 }; Movie movie = new Movie("THE BATMAN", TimeSpan.FromMinutes(300), Money.Wons(14000), 0.1, dc); // Action and Assert Assert.IsFalse(movie.IsDiscountable(new DateTime(2022, 3, 12, 13, 00, 00), 3)); }
public void IsDiscountable_SEQUENCE() { // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.SEQUENCE, Sequence = 2 }; // Action and Assert Assert.IsTrue(dc.IsDiscountable(2)); Assert.IsFalse(dc.IsDiscountable(1)); }
public void IsDiscountable_HasDiscountCondition() { // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.PERIOD, DayOfWeek = DayOfWeek.Saturday, StartTime = new DateTime(2022, 3, 12, 12, 00, 00), EndTime = new DateTime(2022, 3, 12, 22, 00, 00) }; Movie movie = new Movie("THE BATMAN", TimeSpan.FromMinutes(300), Money.Wons(14000), 0.1, dc); // Action and Assert Assert.IsTrue(movie.IsDiscountable(new DateTime(2022, 3, 12, 13, 00, 00), 2)); }
public void IsDiscountable_PERIOD() { // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.PERIOD, DayOfWeek = DayOfWeek.Saturday, StartTime = new DateTime(2022, 3, 12, 12, 00, 00), EndTime = new DateTime(2022, 3, 12, 22, 00, 00) }; // Action and Assert Assert.IsTrue(dc.IsDiscountable(DayOfWeek.Saturday, new DateTime(2022, 3, 12, 18, 00, 00))); Assert.IsFalse(dc.IsDiscountable(DayOfWeek.Saturday, new DateTime(2022, 3, 12, 8, 00, 00))); Assert.IsFalse(dc.IsDiscountable(DayOfWeek.Sunday, new DateTime(2022, 3, 12, 8, 00, 00))); Assert.IsFalse(dc.IsDiscountable(DayOfWeek.Sunday, new DateTime(2022, 3, 12, 8, 00, 00))); }
public void CalculateFee() { // Arrange // Arrange DiscountCondition dc = new DiscountCondition() { Type = DiscountConditionType.SEQUENCE, Sequence = 5 }; Movie movie = new Movie("THE BATMAN", TimeSpan.FromMinutes(300), Money.Wons(14000), Money.Wons(2000), dc); Screening screening = new Screening() { Movie = movie, Sequence = 5, WhenScreened = new DateTime(2022, 3, 12, 18, 00, 00) }; // Action and Assert Assert.AreEqual(screening.CalculateFee(1), Money.Wons(12000)); Assert.AreEqual(screening.CalculateFee(2), Money.Wons(24000)); }
static void Main(string[] args) { // Reservation movie by DiscountCondition DiscountCondition dc = new DiscountCondition(); dc.Type = DiscountConditionType.PERIOD; dc.DayOfWeek = DayOfWeek.Friday; dc.StartTime = new DateTime(2021, 8, 13, 17, 0, 0); dc.EndTime = new DateTime(2021, 8, 13, 21, 0, 0); Movie freeguy = new Movie("Free guy", TimeSpan.FromMinutes(115), Money.Wons(14000), Money.Wons(5000), dc); Screening screening = new Screening(); screening.Movie = freeguy; screening.Sequence = 1; screening.WhenScreened = new DateTime(2021, 8, 13, 18, 30, 0); Reservation reservation = new ReservationAgency().Reserve(screening, new Customer("jongfeel", "feel"), 1); Console.WriteLine("Movie.Fee=" + freeguy.Fee); Console.WriteLine("Reservation.Fee=" + reservation.Fee); }