public void CreateTrip_WhenValid_ShouldCommit() { var trip = ModelTestHelper.CreateTrip(-1, "createTripCommit", organizer: "aUser"); var userTripRepo = new UserTripRepository(); var services = new TripServices(); services.CreateTrip(trip, 1); Assert.IsFalse(services.HasErrors); var dbTrip = services.GetTrip(trip.Id); Assert.IsNotNull(dbTrip); Assert.IsNotNull(dbTrip.TripPot); var pot = dbTrip.TripPot; Assert.AreEqual(trip.Price, pot.TargetAmount); Assert.AreEqual(1, dbTrip.Participants.Count()); var ptp = dbTrip.Participants.First(); Assert.AreEqual(dbTrip.Id, ptp.TripId); Assert.AreEqual(1, pot.Participants.Count()); var potUser = pot.Participants.First(); Assert.AreEqual(pot.Id, potUser.PotId); var userTrips = userTripRepo.GetUserTripsByTrip(trip.TripName); Assert.IsFalse(userTripRepo.HasErrors); Assert.AreEqual(1, userTrips.Count()); var userTrip = userTrips.First(); Assert.AreEqual(trip.TripName, userTrip.TripName); }
public void DeleteTrip_WhenValid_ShouldCommit() { var trip = ModelTestHelper.CreateTrip(-1, "deleteTripCommit"); var services = new TripServices(); services.CreateTrip(trip, 1); Assert.IsFalse(services.HasErrors); var reloadedTrip = services.GetTrip(trip.Id); Assert.IsNotNull(reloadedTrip); var pot = reloadedTrip.TripPot; Assert.IsNotNull(pot); var participants = reloadedTrip.Participants; Assert.AreEqual(1, participants.Count()); var potUsers = pot.Participants; Assert.AreEqual(1, potUsers.Count()); var tripRepo = new TripRepository(); var potRepo = new PotRepository(); var userTripRepo = new UserTripRepository(); var potUserRepo = new PotUserRepository(); var tripParticipantRepo = new TripParticipantRepository(); services.DeleteTrip(reloadedTrip); Assert.IsFalse(services.HasErrors); Assert.IsNull(tripRepo.GetTrip(reloadedTrip.Id)); Assert.IsNull(potRepo.GetPot(pot.Id)); Assert.AreEqual(0, userTripRepo.GetUserTripsByTrip(reloadedTrip.TripName).Count()); Assert.AreEqual(0, potUserRepo.GetPotUsers(pot.Id).Count()); Assert.AreEqual(0, tripParticipantRepo.GetTripParticipants(reloadedTrip.Id).Count()); }