public async Task EnrollingUserToGroupTripShoudIncreaseGuestsCount() { var groupTripslist = new List <GroupTrip> { new GroupTrip { Id = 1, HostId = "2", FreeSeats = 3, }, }; var userGroupTripsList = new List <UserGroupTrip>(); var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >(); var townService = new TownsService(mockTownRepo.Object); var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >(); mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable()); var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >(); mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable()); mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip)); var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object); await service.EnrollUser(1, "3"); Assert.Single(groupTripslist.ElementAt(0).Guests); }
public async Task EnrollingUserToGroupTripWhithNoFreeSeatsShoudThrowException() { var groupTripslist = new List <GroupTrip> { new GroupTrip { Id = 1, HostId = "2", FreeSeats = 0, }, }; var userGroupTripsList = new List <UserGroupTrip> { new UserGroupTrip { Id = 1, GuestId = "1", GroupTripId = 1, }, }; var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >(); var townService = new TownsService(mockTownRepo.Object); var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >(); var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >(); mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable()); mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip)); var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object); var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1")); var message = "Всички места за този излет вече са заети!"; Assert.Equal(message, exception.Message); }
public async Task EnrollingUserTwoTimesToGroupTripWhichHeCreatedShoudThrowException() { var groupTripslist = new List <GroupTrip> { new GroupTrip { Id = 1, HostId = "1", FreeSeats = 3, }, }; var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >(); var townService = new TownsService(mockTownRepo.Object); var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >(); var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >(); mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable()); mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip)); var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object); var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1")); var message = "Не може да се запишете за излет създаден от вас!"; Assert.Equal(message, exception.Message); }