public void TripsRepositoryGetByIdMethodIsCalledOnce() { var tripsRepositoryMock = new Mock <IBikeTripsDbRepository <Trip> >(); //Arrange var service = new TripsService( tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); var tripMock = new Mock <Trip>(); tripsRepositoryMock.Setup(r => r.GetById(It.IsAny <int>())) .Returns(tripMock.Object); //Act service.GetTripById(It.IsAny <string>()); //Assert tripsRepositoryMock.Verify(r => r.GetById(It.IsAny <int>()), Times.Once); }
public void CallIdentifierProviderGetIdMethodOnce() { var identifierProviderMock = new Mock <IIdentifierProvider>(); //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, identifierProviderMock.Object ); var tripMock = new Mock <Trip>(); this.tripsRepositoryMock.Setup(r => r.GetById(It.IsAny <int>())) .Returns(tripMock.Object); //Act service.GetTripById(It.IsAny <string>()); //Assert identifierProviderMock.Verify(p => p.GetId(It.IsAny <string>()), Times.Once); }
public void ThrowIfCurrentUserDifferentThanTripCreator() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var firstUser = new Mock <User>(); var secondUser = new Mock <User>(); var trip = new Mock <Trip>(); this.usersServiceMock.Setup(s => s.GetCurrentUser()) .Returns(firstUser.Object); trip.Setup(t => t.Creator) .Returns(secondUser.Object); //Act / Assert Assert.That(() => service.DeleteTrip(trip.Object), Throws.TypeOf <UnauthorizedAccessException>() .With.Message.Contains(ErrorMessageConstants.NotCreator)); }
public void CallCommentsServiceDeleteAllMethodOnceIfCommentsExist() { var commentsServiceMock = new Mock <ICommentsService>(); //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var userMock = new Mock <User>(); var tripMock = new Mock <Trip>(); var commentMock = new Mock <Comment>(); this.usersServiceMock.Setup(s => s.GetCurrentUser()) .Returns(userMock.Object); tripMock.Setup(t => t.Creator) .Returns(userMock.Object); tripMock.Setup(t => t.Comments) .Returns(new List <Comment>() { commentMock.Object }); //Act service.DeleteTrip(tripMock.Object); //Assert commentsServiceMock.Verify(x => x.DeleteAllComments(tripMock.Object.Comments), Times.Once); }
public void CallUnitOfWorkCommitMethodOnce() { var unitOfWorkMock = new Mock <IUnitOfWork>(); //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); var mockUser = new Mock <User>(); var mockTrip = new Mock <Trip>(); mockTrip.Setup(t => t.Participants).Returns(new List <User>() { mockUser.Object }); //Act service.LeaveTrip(mockTrip.Object); //Assert unitOfWorkMock.Verify(u => u.Commit(), Times.Once); }
public void CallUnitOfWorkCommitMethodOnce() { var unitOfWorkMock = new Mock <IUnitOfWork>(); //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var userMock = new Mock <User>(); var tripMock = new Mock <Trip>(); this.usersServiceMock.Setup(s => s.GetCurrentUser()) .Returns(userMock.Object); tripMock.Setup(t => t.Creator) .Returns(userMock.Object); tripMock.Setup(t => t.Comments) .Returns(new List <Comment>()); //Act service.DeleteTrip(tripMock.Object); //Assert unitOfWorkMock.Verify(u => u.Commit(), Times.Once); }
public void ReturnExpectedCollection() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var expectedCollection = new List <Trip>(); for (int i = 0; i < 10; i++) { expectedCollection.Add(new Trip() { StartingTime = new DateTime(2018, 12, 10, 11, 11, i) }); } this.tripsRepositoryMock.Setup(x => x.All()).Returns(expectedCollection.AsQueryable); //Act var tripsCollection = service.GetAll(); //Assert Assert.AreEqual(expectedCollection, tripsCollection); }
public void ReturnNullIfTripDoesntExist() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); var tripMock = new Mock <Trip>(); var expected = tripMock.Object; expected.TripName = "name"; this.tripsRepositoryMock.Setup(r => r.All()) .Returns((new List <Trip>() { expected }).AsQueryable); //Act var result = service.GetTripByName("something"); Assert.Null(result); }
public SearchTripController(TripsService tripsService, BusesService busesService, HistoryTripsService historyTripsService, UserManager <IdentityUser> userManager) { this.tripsService = tripsService; this.busesService = busesService; this.userManager = userManager; this.historyTripsService = historyTripsService; }
public void ReturnExpectedCollectionSorted() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var expectedCollection = new List <Trip>(); for (int i = 10; i > 0; i--) { expectedCollection.Add(new Trip() { StartingTime = new DateTime(2018, 12, 10, 11, 11, i) }); } this.tripsRepositoryMock.Setup(x => x.AdminAll()).Returns(expectedCollection.AsQueryable); expectedCollection.Sort(delegate(Trip x, Trip y) { return(x.StartingTime.CompareTo(y.StartingTime)); }); //Act var tripsCollection = service.GetAllAdmin(); //Assert Assert.AreEqual(expectedCollection, tripsCollection); }
public void AddTripToUserAdministeredEvents() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var validTime = new DateTime(2018, 10, 10, 10, 10, 10); this.userMock.Setup(u => u.AdministeredEvents).Returns(new List <Trip>()); converterMock.Setup(c => c.Convert(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(validTime); usersServiceMock.Setup(x => x.GetCurrentUser()) .Returns(this.userMock.Object); //Act service.AddTrip(this.trip, It.IsAny <DateTime>(), It.IsAny <DateTime>()); //Assert Assert.IsTrue(this.trip.Creator.AdministeredEvents.Any(x => x == trip)); }
public void SetsCorrectStartingTime() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var validTime = new DateTime(2018, 10, 10, 10, 10, 10); converterMock.Setup(c => c.Convert(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(validTime); usersServiceMock.Setup(x => x.GetCurrentUser()) .Returns(this.userMock.Object); //Act service.AddTrip(this.trip, It.IsAny <DateTime>(), It.IsAny <DateTime>()); //Assert Assert.AreEqual(validTime, this.trip.StartingTime); }
public void CallUnitOfWorkCommitMethodOnce() { var unitOfWorkMock = new Mock <IUnitOfWork>(); //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var validTime = new DateTime(2018, 10, 10, 10, 10, 10); converterMock.Setup(c => c.Convert(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(validTime); usersServiceMock.Setup(x => x.GetCurrentUser()) .Returns(this.userMock.Object); //Act service.AddTrip(this.trip, It.IsAny <DateTime>(), It.IsAny <DateTime>()); //Assert unitOfWorkMock.Verify(x => x.Commit(), Times.Once); }
public void AddUserToParticipants() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var validTime = new DateTime(2018, 10, 10, 10, 10, 10); converterMock.Setup(c => c.Convert(It.IsAny <DateTime>(), It.IsAny <DateTime>())) .Returns(validTime); usersServiceMock.Setup(x => x.GetCurrentUser()) .Returns(this.userMock.Object); //Act service.AddTrip(this.trip, It.IsAny <DateTime>(), It.IsAny <DateTime>()); //Assert Assert.IsTrue(this.trip.Participants.Any(x => x == this.userMock.Object)); }
public void RemoveCorrectUserFromTripParticipants() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); var mockUser = new Mock <User>(); var mockTrip = new Mock <Trip>(); this.usersServiceMock.Setup(x => x.GetCurrentUser()).Returns(mockUser.Object); mockTrip.Setup(t => t.Participants).Returns(new List <User>() { mockUser.Object }); Assert.IsTrue(mockTrip.Object.Participants.Any(u => u == mockUser.Object)); //Act service.LeaveTrip(mockTrip.Object); //Assert Assert.IsFalse(mockTrip.Object.Participants.Any(u => u == mockUser.Object)); }
public void CallTripRepositoryMethodAll() { var tripsRepositoryMock = new Mock <IBikeTripsDbRepository <Trip> >(); //Arrange var service = new TripsService( tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); var tripMock = new Mock <Trip>(); var expected = tripMock.Object; expected.TripName = "name"; tripsRepositoryMock.Setup(r => r.All()) .Returns((new List <Trip>() { tripMock.Object }).AsQueryable); //Act var result = service.GetTripByName("name"); tripsRepositoryMock.Verify(r => r.All(), Times.Once()); }
public void FlagsDeletedTrueOfTrip() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); var userMock = new Mock <User>(); var tripMock = new Mock <Trip>(); this.usersServiceMock.Setup(s => s.GetCurrentUser()) .Returns(userMock.Object); tripMock.Setup(t => t.Creator) .Returns(userMock.Object); tripMock.Setup(t => t.Comments) .Returns(new List <Comment>()); Assert.IsFalse(tripMock.Object.IsDeleted); //Act service.DeleteTrip(tripMock.Object); //Assert Assert.IsTrue(tripMock.Object.IsDeleted); }
public void CreateInstanceOfTripsServiceWithoutParameters() { //Arrange / Act var service = new TripsService(); //Assert Assert.IsInstanceOf <TripsService>(service); }
public async Task SendTripRequestShouldAddEntityToDb() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: "SendTripRequestDb").Options; var dbContext = new ApplicationDbContext(options); var tripReqeustRepository = new EfDeletableEntityRepository <TripRequest>(dbContext); var tripRepository = new EfDeletableEntityRepository <Trip>(dbContext); var destinationRepository = new EfRepository <Destination>(dbContext); var usersRepository = new EfDeletableEntityRepository <ApplicationUser>(dbContext); var userNotificationsRepository = new EfRepository <UserNotification>(dbContext); var notificationService = new NotificationService(usersRepository, userNotificationsRepository); var unitOfWork = new UnitOfWork(dbContext); var mockClientProxy = new Mock <IClientProxy>(); var mockClients = new Mock <IHubClients>(); mockClients.Setup(clients => clients.All).Returns(mockClientProxy.Object); mockClients.Setup(c => c.User("awe22")).Returns(mockClientProxy.Object); var hub = new Mock <IHubContext <NotificationHub> >(); hub.Setup(x => x.Clients).Returns(() => mockClients.Object); var tripService = new TripsService(unitOfWork); var service = new TripRequestsService(hub.Object, unitOfWork, notificationService); await dbContext.Trips.AddAsync(new Trip { Id = "123", FromDestinationName = "sofia", ToDestinationName = "Silistra", }); var sender = new ApplicationUser { Id = "awe12", UserName = "******", }; var owner = new ApplicationUser { Id = "awe22", UserName = "******", }; await dbContext.Users.AddRangeAsync(sender, owner); await dbContext.SaveChangesAsync(); using (dbContext) { var trip = await dbContext.Trips.FirstOrDefaultAsync(x => x.Id == "123"); var actual = await service.SendTripRequest(sender.UserName, trip, owner.Id); Assert.True(actual); } }
public void GetAllForSelectListShouldReturnAllFishspeciesAndOrderThemAlphabeticllyByName() { var fishSpeciesList = new List <FishSpecies> { new FishSpecies { Id = 1, Name = "b", }, new FishSpecies { Id = 2, Name = "a", }, new FishSpecies { Id = 3, Name = "d", }, new FishSpecies { Id = 4, Name = "c", }, }; var fishSpeciesRepo = new Mock <IDeletableEntityRepository <FishSpecies> >(); fishSpeciesRepo.Setup(x => x.AllAsNoTracking()).Returns(fishSpeciesList.AsQueryable()); var commentRepo = new Mock <IDeletableEntityRepository <Comment> >(); var commentService = new CommentService(commentRepo.Object); var fishRepo = new Mock <IDeletableEntityRepository <Fish> >(); var fishService = new FishServices(fishRepo.Object); var townRepo = new Mock <IDeletableEntityRepository <Town> >(); var townService = new TownsService(townRepo.Object); var tripsRepo = new Mock <IDeletableEntityRepository <Trip> >(); var tripsService = new TripsService(commentService, tripsRepo.Object, fishService, townService); var fishSpeciesService = new FishSpeciesService(fishSpeciesRepo.Object, tripsService); var fishSpeciesFromService = fishSpeciesService.GetAllForSelectList(); Assert.Equal(fishSpeciesList.Count, fishSpeciesFromService.Count()); Assert.Collection( fishSpeciesFromService, item => Assert.Equal(fishSpeciesList.ElementAt(1).Name, item.Name), item => Assert.Equal(fishSpeciesList.ElementAt(0).Name, item.Name), item => Assert.Equal(fishSpeciesList.ElementAt(3).Name, item.Name), item => Assert.Equal(fishSpeciesList.ElementAt(2).Name, item.Name)); }
public void GetTrips_Constructor_ReturnsOkWithAllParameter() { // Arrange var repository = new Mock <ITripsRepository>(); // Act var result = new TripsService(repository.Object); // Assert Assert.NotNull(result); }
public async Task InitializeAsync() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; this.dbContext = new ApplicationDbContext(options); var unitOfWork = new UnitOfWork(this.dbContext); this.tripsService = new TripsService(unitOfWork); this.InitializeMapper(); }
public void CreateInstanceOfCommentsServiceWithtParameters() { //Arange / Act var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); //Assert Assert.IsInstanceOf <TripsService>(service); }
public async Task VoteAsync_ShouldRetutnCorrectResult() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var tripsRepository = new EfDeletableEntityRepository <Trip>(context); var carsRepository = new EfDeletableEntityRepository <Car>(context); var usersRepository = new EfDeletableEntityRepository <ApplicationUser>(context); var tripsService = new TripsService(tripsRepository, usersRepository, carsRepository); var seeder = new DbContextTestsSeeder(); await seeder.SeedTripsAsync(context); var result = await tripsService.VoteAsync(1); Assert.True(result == 1, ErrorMessage); }
public async Task GetByUserAsync_ShouldReturnAllReservationsForUser(string clientId, int?tripsPerPage, int skip) { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var tripsRepository = new EfDeletableEntityRepository <Trip>(context); var carsRepository = new EfDeletableEntityRepository <Car>(context); var usersRepository = new EfDeletableEntityRepository <ApplicationUser>(context); var tripsService = new TripsService(tripsRepository, usersRepository, carsRepository); var seeder = new DbContextTestsSeeder(); await seeder.SeedTripsAsync(context); await seeder.SeedUsersAsync(context); var result = await tripsService.GetByUserAsync(clientId, tripsPerPage, skip); Assert.True(result.ToList().Count == 2, ErrorMessage); }
static bool MakeRequest(APIAirlineSearch filters) { bool result = false; try { int AttemptsNumber = 0; int MaxRequestAttempts = FlightsEngine.Models.Constants.Constants.MaxRequestAttempts; var context = new TemplateEntities1(); SearchTripProviderService _searchTripProviderService = new SearchTripProviderService(context); TripsService _tripService = new TripsService(context); int MaxDaysNumberForSearch = 30; DateTime originalFromDateMin = filters.FromDateMin; DateTime originalToDateMax = (filters.ToDateMax ?? filters.FromDateMax); DateTime FromDateMin = originalFromDateMin; DateTime ToDateMax = originalToDateMax; if ((originalToDateMax - originalFromDateMin).TotalDays > MaxDaysNumberForSearch) { ToDateMax = FromDateMin.AddDays(MaxDaysNumberForSearch); } int SearchTripProviderId = _searchTripProviderService.GetSearchTripProviderId(originalFromDateMin, originalToDateMax, filters.SearchTripWishesId, Providers.BritishAirways); List <TripItem> Trips = new List <TripItem>(); while (ToDateMax < originalToDateMax) { AttemptsNumber = 1; result = false; while (!result && AttemptsNumber <= MaxRequestAttempts) { AttemptsNumber++; } } _tripService.InsertTrips(Trips); } catch (Exception e) { FlightsEngine.Utils.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, filters.ToSpecialString()); } return(result); }
public void CallTripsRepositoryMethodAllOnce() { var tripsRepositoryMock = new Mock <IBikeTripsDbRepository <Trip> >(); //Arrange var service = new TripsService( tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object); //Act var tripsCollection = service.GetAllAdmin(); //Assert tripsRepositoryMock.Verify(r => r.AdminAll(), Times.Once); }
public void ThrowIfUserIsNullWithCorrectMessage() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); this.usersServiceMock.Setup(x => x.GetCurrentUser()).Returns((User)null); //Act / Assert Assert.That(() => service.AddParticipantTo(It.IsAny <Trip>()), Throws.TypeOf <ArgumentNullException>() .With.Message.Contains("User")); }
public void ThrowIfTripIsNull() { //Arrange var service = new TripsService( this.tripsRepositoryMock.Object, this.usersServiceMock.Object, this.commentsServiceMock.Object, this.unitOfWorkMock.Object, this.converterMock.Object, this.identifierProviderMock.Object ); this.tripsRepositoryMock.Setup(r => r.GetByIdWithDeleted(It.IsAny <int>())) .Returns((Trip)null); //Act / Assert Assert.That(() => service.GetTripByIdAdmin(It.IsAny <string>()), Throws.TypeOf <ArgumentNullException>() .With.Message.Contains("Trip")); }
public async Task PayAsync_ShouldRetutnCorrectResultForDays_RankUser() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var tripsRepository = new EfDeletableEntityRepository <Trip>(context); var carsRepository = new EfDeletableEntityRepository <Car>(context); var usersRepository = new EfDeletableEntityRepository <ApplicationUser>(context); var tripsService = new TripsService(tripsRepository, usersRepository, carsRepository); var seeder = new DbContextTestsSeeder(); await seeder.SeedTripsAsync(context); await seeder.SeedUsersAsync(context); var trip = await tripsRepository.All().Where(t => t.Id == 2).FirstOrDefaultAsync(); var tripsServiceModel = trip.To <MyTripsServiceAllModel>(); var result = await tripsService.PayAsync(tripsServiceModel); Assert.True(result == 6, ErrorMessage); }