public async Task CreateTransportUpdatesBudget() { //Arrange TestTrekStoriesContext tc = new TestTrekStoriesContext(); Trip trip = new Trip { TripId = 1, TotalCost = 10, StartDate = new DateTime(2018, 7, 15, 9, 30, 0), TripOwner = "User1" }; Step step = new Step { StepId = 2, TripId = 1, Trip = trip, SequenceNo = 1 }; tc.Trips.Add(trip); tc.Steps.Add(step); Transport transportToCreate = new Transport() { Name = "Train to Paris", StartTime = new DateTime(2018, 7, 16, 9, 30, 0), Duration = 120, Price = 23, StepId = 2, Step = step }; ActivitiesController controller = new ActivitiesController(tc).WithAuthenticatedUser("User1"); // Act var result = await controller.EditTransport(transportToCreate) as RedirectToRouteResult; // Assert Assert.AreEqual("Details", result.RouteValues["action"]); Assert.AreEqual("Step", result.RouteValues["controller"]); Assert.AreEqual(33, trip.TotalCost); Assert.AreEqual(new DateTime(2018, 7, 15, 11, 30, 0), transportToCreate.GetArrivalTime()); }
public async Task EditTransportUpdatesBudget() { // Arrange - create mock repository TestTrekStoriesContext tc = new TestTrekStoriesContext(); // Arrange - create a transport Trip trip = new Trip { TripId = 321, TotalCost = 100, TripOwner = "User1" }; Transport transport = new Transport() { ID = 1, Name = "Bus Transportation", Price = 60 }; transport.Step = new Step { StepId = 123, Trip = trip }; tc.Trips.Add(trip); tc.Activities.Add(transport); Transport updatedTransport = new Transport() { ID = 1, Name = "Name Change", Destination = "Roma", Duration = 20, StartTime = new DateTime(2018, 8, 1, 9, 30, 0), Price = 50 }; // Arrange - create the controller ActivitiesController controller = new ActivitiesController(tc).WithAuthenticatedUser("User1"); // Act - try to save the activity ActionResult result = await controller.EditTransport(updatedTransport); // Assert - check the trip budget updated Assert.AreEqual(90, trip.TotalCost); }