public void ReservationValidCustomerType(CustomerType customerType) { var reservation = ReservationBuilder.New().SetCustomerType(customerType).Build(); Assert.True(reservation.CustomerType == customerType); //Assert.Throws<ArgumentException>(() => ReservationBuilder.New().SetCustomerType(customerType).Build()); }
public IActionResult CreateReservation(IFormCollection resForm) { // Initializing Variables Dictionary <string, object> resTemp = new Dictionary <string, object>(); int guestId = Convert.ToInt32(resForm["GuestId"]); var promoCheck = resForm["promoCode"].ToString(); // Add all POST data into a dictionary resTemp.Add("guestID", guestId); resTemp.Add("numOfGuest", Convert.ToInt32(resForm["Number of Guests"])); resTemp.Add("roomType", resForm["Room Type"]); resTemp.Add("start", Convert.ToDateTime(resForm["Check-In Date/Time"])); resTemp.Add("end", Convert.ToDateTime(resForm["Check-Out Date/Time"])); resTemp.Add("remark", resForm["Remarks"].ToString()); if (promoCheck == "true") { resTemp.Add("promoCode", resForm["Promotion Code"]); } else { resTemp.Add("promoCode", ""); } // Create Reservation Object using Builder Pattern IReservationBuilder builder = new ReservationBuilder(_promoCodeService, _guestService, _roomGateway); var reservation = _reservationDirector.BuildNewReservation(builder, resTemp); if (reservation.Item1 == null) { TempData["Message"] = reservation.Item2; return(RedirectToAction("CreateReservation", "ReservationCreation", new { GuestId = guestId })); } // Creating Reservation object and storing it to database _reservationService.CreateReservation(reservation.Item1); // Retrieve latest reservation id inserted into database var newReservationId = Convert.ToInt32(_reservationService.GetLatestReservation().GetReservation()["resID"]); // After completion of creation to redirect user to "/Reservation/ReservationView" TempData["Message"] = "Reservation Successfully Created"; return(RedirectToAction("TransportReservation", "TransportReservation", new { GuestId = guestId, NumOfGuest = reservation.Item1.GetReservation()["numOfGuest"], ResId = newReservationId })); }
public void ForTentativeReservation_ShouldSucceed() { // Given var reservation = ReservationBuilder .Create() .Tentative() .Build(); // When reservation.Confirm(); // Then reservation.Status.Should().Be(ReservationStatus.Confirmed); reservation.Version.Should().Be(2); var @event = reservation.PublishedEvent <ReservationConfirmed>(); @event.Should().BeOfType <ReservationConfirmed>(); @event.ReservationId.Should().Be(reservation.Id); }
/// <summary> /// Test dzia³ania dla przypadku, gdy jest iloœæ widzów, ale nie ma /// ceny od osoby. Cena od osoby powinna byæ ustawiona na wartoœæ /// gwarantuj¹c¹ minimalny przychód. /// </summary> public void TestNoDollar() { String s = "Date, November 5, Headcount, 250, City, Springfield, " + " HasSite, false"; ForgivingBuilder b = new ForgivingBuilder(); ReservationParser p = new ReservationParser(b); p.Parse(s); Reservation r = b.Build(); // DateTime d = new DateTime(2000, 11, 5); d = ReservationBuilder.Futurize(d); // Assertion.AssertEquals(d, r.Date); Assertion.AssertEquals(250, r.Headcount); Assertion.Assert(r.Headcount * r.DollarsPerHead >= ReservationBuilder.MINTOTAL); Assertion.AssertEquals("Springfield", r.City); Assertion.AssertEquals(false, r.HasSite); }
public void TestNormal() { String s = "Date, November 5, Headcount, 250, City, Springfield, " + "DollarsPerHead, 9.95, HasSite, false"; UnforgivingBuilder b = new UnforgivingBuilder(); ReservationParser p = new ReservationParser(b); p.Parse(s); Reservation r = b.Build(); // DateTime d = new DateTime(2000, 11, 5); d = ReservationBuilder.Futurize(d); // Assert.AreEqual(d, r.Date); Assert.AreEqual(250, r.Headcount); Assert.AreEqual("Springfield", r.City); Assert.AreEqual(9.95, (double)r.DollarsPerHead, .01); Assert.AreEqual(false, r.HasSite); }
public void TestNoHeadcountNoDollar() { String s = "Date, November 5, City, Springfield, " + " HasSite, false"; ForgivingBuilder b = new ForgivingBuilder(); ReservationParser p = new ReservationParser(b); p.Parse(s); Reservation r = b.Build(); // DateTime d = new DateTime(2000, 11, 5); d = ReservationBuilder.Futurize(d); // Assert.AreEqual(d, r.Date); Assert.AreEqual(ReservationBuilder.MINHEAD, r.Headcount); Assert.AreEqual("Springfield", r.City); Assert.AreEqual((double)(ReservationBuilder.MINTOTAL / r.Headcount), (double)r.DollarsPerHead, .01); Assert.AreEqual(false, r.HasSite); }
public void ForValidParams_UpdatesSeatId() { // Given var reservation = ReservationBuilder .Create() .Tentative() .Build(); var newSeatId = Guid.NewGuid(); // When reservation.ChangeSeat(newSeatId); // Then reservation.SeatId.Should().Be(newSeatId); reservation.Version.Should().Be(2); var @event = reservation.PublishedEvent <ReservationSeatChanged>(); @event.Should().BeOfType <ReservationSeatChanged>(); @event.ReservationId.Should().Be(reservation.Id); @event.SeatId.Should().Be(newSeatId); }
public ActionResult calcPath(string from, string dest, string date, string submit) { if (Session["UserName"] != null) { var c = db.Cities.SingleOrDefault(s => s.CityName == from); var d = db.Cities.SingleOrDefault(s => s.CityName == dest); Session["wrong source"] = null; Session["wrong dest"] = null; Session["no path"] = null; if (c == null) { Session["wrong source"] = true; return(RedirectToAction("Index", "Home")); } if (d == null) { Session["wrong dest"] = true; return(RedirectToAction("Index", "Home")); } Account a = db.Accounts.Find(int.Parse(Session["AccountId"].ToString())); ReservationBuilder r; if (submit.Contains("cheapest")) { LinkedList <string> path = calcCheapestWay(from, dest); if (path.Count() == 0) { Session["no path"] = true; return(RedirectToAction("Index", "Home")); } r = new ReservationBuilder(path); } else { LinkedList <string> path = calcFastestWay(from, dest); if (path.Count() == 0) { Session["no path"] = true; return(RedirectToAction("Index", "Home")); } r = new ReservationBuilder(path); } r.bulidReservation(); LinkedList <string> res = r.updateReservation(); if (res != null) { Reservation reservation = new Reservation(); reservation.AccountId = a.AccountId; reservation.Account = a; reservation.Departure = date; foreach (string s in res) { reservation.TheReservation += s + " | "; } db.Reservations.Add(reservation); db.SaveChanges(); return(RedirectToAction("ShowReservation", "Reservations", reservation)); } else { return(View());//pop up no path msg } } else { return(RedirectToAction("login", "Accounts")); //need to show "please log in first"+button } }