Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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;
 }
Пример #10
0
        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);
        }
Пример #11
0
        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));
        }
Пример #12
0
        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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        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));
        }
Пример #15
0
        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));
        }
Пример #16
0
        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());
        }
Пример #17
0
        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);
        }
Пример #18
0
        public void CreateInstanceOfTripsServiceWithoutParameters()
        {
            //Arrange / Act
            var service = new TripsService();

            //Assert
            Assert.IsInstanceOf <TripsService>(service);
        }
Пример #19
0
        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);
            }
        }
Пример #20
0
        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));
        }
Пример #21
0
        public void GetTrips_Constructor_ReturnsOkWithAllParameter()
        {
            // Arrange
            var repository = new Mock <ITripsRepository>();

            // Act
            var result = new TripsService(repository.Object);

            // Assert
            Assert.NotNull(result);
        }
Пример #22
0
        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();
        }
Пример #23
0
        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);
        }
Пример #26
0
        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);
        }
Пример #27
0
        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"));
        }
Пример #29
0
        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);
        }