コード例 #1
0
        public void CreateTrip_ShoulThrowException_WhenTripIsNull()
        {
            // Arange
            var service = new TripService(_unitOfWork, _mapper);

            // Act
            Action action = () => service.CreateTrip(null);

            // Assert
            action.Should().Throw <ArgumentNullException>();
        }
コード例 #2
0
        public void CreateTrip_ShoulThrowException_WhenTripExists()
        {
            var trip = new Domain.Core.Trip().IsFrom("Kyiv").IsTo("Brovary").WithDriver(new Domain.Core.Driver());

            _unitOfWork.Trips.GetAll().Returns(new List <Domain.Core.Trip> {
                trip
            });

            var    service = new TripService(_unitOfWork, _mapper);
            Action action  = () => service.CreateTrip(trip);

            action.Should().Throw <InvalidOperationException>();
        }
コード例 #3
0
ファイル: TripsController.cs プロジェクト: YaroslavGooD/iTram
        public async Task <ActionResult <Trip> > PostTrip(TripReqDTO tripDTO)
        {
            try
            {
                var trip = await _tripService.CreateTrip(tripDTO);

                return(CreatedAtAction("PostTrip", trip));
            }
            catch (InvalidOperationException exp)
            {
                return(BadRequest(exp.Message));
            }
        }
コード例 #4
0
        public void NotCallCreateCityFromCityService_WhenOriginAndDestinationNamesExistInDB()
        {
            // Arrange
            var mockedTripRepo          = new Mock <IProjectableRepositoryEf <Trip> >();
            var mockedUserTripRepo      = new Mock <IProjectableRepositoryEf <UsersTrips> >();
            var mockedCityService       = new Mock <ICityService>();
            var mockedTagService        = new Mock <ITagService>();
            var mockedDateTimpeProvider = new Mock <IDateTimeProvider>();
            var mockedMappingProvider   = new Mock <IMappingProvider>();
            var mockedUnitOfWork        = new Mock <IUnitOfWorkEF>();

            var tripService = new TripService(
                () => mockedUnitOfWork.Object,
                mockedUserTripRepo.Object,
                mockedCityService.Object,
                mockedMappingProvider.Object,
                mockedTagService.Object,
                mockedTripRepo.Object,
                mockedDateTimpeProvider.Object);

            var tripCreatingInfo = new TripCreationInfo()
            {
                OriginName = "Sofia", DestinationName = "Pazardzhik"
            };

            City originCity = new City()
            {
                Name = tripCreatingInfo.OriginName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.DestinationName))
            .Returns(originCity);

            City destinationCity = new City()
            {
                Name = tripCreatingInfo.DestinationName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.OriginName))
            .Returns(destinationCity);

            mockedMappingProvider.Setup(x => x.Map <TripCreationInfo, Trip>(tripCreatingInfo)).Returns(new Trip());

            // Act
            tripService.CreateTrip(tripCreatingInfo);

            // Assert
            mockedCityService.Verify(x => x.CreateCity(tripCreatingInfo.DestinationName), Times.Never);
            mockedCityService.Verify(x => x.CreateCity(tripCreatingInfo.OriginName), Times.Never);
        }
コード例 #5
0
ファイル: TripTests.cs プロジェクト: NikolayOliver/TestTask
        public void CreateTrip_POST()
        {
            var airSegment = new AirSegment()
            {
                ArrivalAirportCode   = RandomHelper.GetRandomGuid(),
                ArrivalDate          = "Jan 20, 2020, 12:30:00",
                DepartureAirportCode = RandomHelper.GetRandomGuid(),
                DepartureDate        = "Jan 20, 2020, 12:30:00"
            };

            var traveller = new Traveller()
            {
                FirstName      = "JOE",
                LastName       = "Soda",
                PersonalNumber = 5,
                Email          = "*****@*****.**"
            };

            Trip trip = new Trip()
            {
                Id          = RandomHelper.GetRandomGuid(),
                BookingDate = "Jan 20, 2020, 12:30:00",
                AirSegments = new List <AirSegment>()
                {
                    airSegment
                },
                Travellers = new List <Traveller>()
                {
                    traveller
                }
            };

            var response = TripService.CreateTrip(trip);

            DataCollectionClass <Trip> dataCollection = JsonHelper.Deserialize <Trip>();

            dataCollection.DataCollection.Add(trip);
            JsonHelper.Serialize <Trip>(dataCollection);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "Incorrect creating of trip");
        }
コード例 #6
0
        public void CallCreateNewCity_WhenOriginCityFromTheInputIsNotPresentInTheDb()
        {
            // Arrange
            var mockedTripRepo          = new Mock <IProjectableRepositoryEf <Trip> >();
            var mockedUserTripRepo      = new Mock <IProjectableRepositoryEf <UsersTrips> >();
            var mockedCityService       = new Mock <ICityService>();
            var mockedTagService        = new Mock <ITagService>();
            var mockedDateTimpeProvider = new Mock <IDateTimeProvider>();
            var mockedMappingProvider   = new Mock <IMappingProvider>();
            var mockedUnitOfWork        = new Mock <IUnitOfWorkEF>();

            var tripService = new TripService(
                () => mockedUnitOfWork.Object,
                mockedUserTripRepo.Object,
                mockedCityService.Object,
                mockedMappingProvider.Object,
                mockedTagService.Object,
                mockedTripRepo.Object,
                mockedDateTimpeProvider.Object);

            var tripCreatingInfo = new TripCreationInfo()
            {
                OriginName = "Sofia", DestinationName = "Pazardzhik"
            };

            City city = null;

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.OriginName))
            .Returns(city);

            mockedMappingProvider.Setup(x => x.Map <TripCreationInfo, Trip>(tripCreatingInfo)).Returns(new Trip());

            // Act
            tripService.CreateTrip(tripCreatingInfo);

            // Assert
            mockedCityService.Verify(x => x.CreateCity(tripCreatingInfo.OriginName), Times.Once);
        }
コード例 #7
0
 public Trip CreateTrip([FromBody] TripRequest trip)
 {
     return(TripService.CreateTrip(trip));
 }
コード例 #8
0
 public Trip Post([FromBody] Trip value)
 {
     return(tripService.CreateTrip(value));
 }
コード例 #9
0
        public ActionResult <Trip> CreateTrip(Trip trip)
        {
            string id = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            return(Ok(_tripService.CreateTrip(id, trip)));
        }
コード例 #10
0
        public void CreateTripWithAllPropertiesFromMethodParameter()
        {
            // Arrange
            var mockedTripRepo          = new Mock <IProjectableRepositoryEf <Trip> >();
            var mockedUserTripRepo      = new Mock <IProjectableRepositoryEf <UsersTrips> >();
            var mockedCityService       = new Mock <ICityService>();
            var mockedTagService        = new Mock <ITagService>();
            var mockedDateTimpeProvider = new Mock <IDateTimeProvider>();
            var mockedMappingProvider   = new Mock <IMappingProvider>();
            var mockedUnitOfWork        = new Mock <IUnitOfWorkEF>();

            var tripService = new TripService(
                () => mockedUnitOfWork.Object,
                mockedUserTripRepo.Object,
                mockedCityService.Object,
                mockedMappingProvider.Object,
                mockedTagService.Object,
                mockedTripRepo.Object,
                mockedDateTimpeProvider.Object);

            var tripCreatingInfo = new TripCreationInfo()
            {
                OriginName      = "Sofia",
                DestinationName = "Pazardzhik",
                TagIds          = new List <int>(),
                Description     = "test",
                Price           = 4,
                CarId           = 1,
                TotalSeats      = 2,
                TimeOfDeparture = DateTime.Now,
                DriverId        = "1"
            };

            City originCity = new City()
            {
                Name = tripCreatingInfo.OriginName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.DestinationName))
            .Returns(originCity);

            City destinationCity = new City()
            {
                Name = tripCreatingInfo.DestinationName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.OriginName))
            .Returns(destinationCity);

            var foundTags = new List <Tag>();

            mockedTagService.Setup(x => x.GetTagsByIds(tripCreatingInfo.TagIds)).Returns(foundTags);

            var dateCreated = DateTime.Now;

            mockedDateTimpeProvider.Setup(x => x.Now).Returns(dateCreated);

            var trip = new Trip()
            {
                Tags            = foundTags,
                Origin          = originCity,
                Destination     = destinationCity,
                CarId           = tripCreatingInfo.CarId,
                Price           = tripCreatingInfo.Price,
                TotalSeats      = tripCreatingInfo.TotalSeats,
                TimeOfDeparture = tripCreatingInfo.TimeOfDeparture,
                TakenSeats      = 0,
                Description     = tripCreatingInfo.Description,
                IsDeleted       = false,
                IsReported      = false,
                IsFinished      = false,
                DateCreated     = DateTime.UtcNow,
            };

            mockedMappingProvider.Setup(x => x.Map <TripCreationInfo, Trip>(tripCreatingInfo))
            .Returns(trip);

            // Act
            tripService.CreateTrip(tripCreatingInfo);
            var createdTripUserTrips = trip.TripsUsers.FirstOrDefault(x => x.Trip == trip);

            // Assert
            Assert.AreEqual(createdTripUserTrips.UserTripStatusId, (int)UserTripStatusType.Owner);
            Assert.AreEqual(createdTripUserTrips.UserId, tripCreatingInfo.DriverId);
            Assert.AreEqual(createdTripUserTrips.Trip, trip);
            Assert.AreEqual(tripCreatingInfo.CarId, trip.CarId);
            Assert.AreEqual(tripCreatingInfo.Price, trip.Price);
            Assert.AreEqual(0, trip.TakenSeats);
            Assert.AreEqual(tripCreatingInfo.TotalSeats, trip.TotalSeats);
            Assert.AreEqual(tripCreatingInfo.TimeOfDeparture, trip.TimeOfDeparture);
            Assert.AreEqual(dateCreated, trip.DateCreated);
            Assert.IsFalse(trip.IsDeleted);
            Assert.IsFalse(trip.IsFinished);
            Assert.IsFalse(trip.IsReported);

            mockedTripRepo.Verify(x => x.Add(trip), Times.Once);
            mockedUnitOfWork.Verify(x => x.Commit(), Times.Once);
        }
コード例 #11
0
        public void CreateTripWithoutTags_WhenThereAreNotagsProvider()
        {
            // Arrange
            var mockedTripRepo          = new Mock <IProjectableRepositoryEf <Trip> >();
            var mockedUserTripRepo      = new Mock <IProjectableRepositoryEf <UsersTrips> >();
            var mockedCityService       = new Mock <ICityService>();
            var mockedTagService        = new Mock <ITagService>();
            var mockedDateTimpeProvider = new Mock <IDateTimeProvider>();
            var mockedMappingProvider   = new Mock <IMappingProvider>();
            var mockedUnitOfWork        = new Mock <IUnitOfWorkEF>();

            var tripService = new TripService(
                () => mockedUnitOfWork.Object,
                mockedUserTripRepo.Object,
                mockedCityService.Object,
                mockedMappingProvider.Object,
                mockedTagService.Object,
                mockedTripRepo.Object,
                mockedDateTimpeProvider.Object);

            var tripCreatingInfo = new TripCreationInfo()
            {
                OriginName      = "Sofia",
                DestinationName = "Pazardzhik",
                TagIds          = new List <int>()
            };

            City originCity = new City()
            {
                Name = tripCreatingInfo.OriginName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.DestinationName))
            .Returns(originCity);

            City destinationCity = new City()
            {
                Name = tripCreatingInfo.DestinationName
            };

            mockedCityService.Setup(x => x.GetCityByName(tripCreatingInfo.OriginName))
            .Returns(destinationCity);

            var foundTags = new List <Tag>();

            mockedTagService.Setup(x => x.GetTagsByIds(tripCreatingInfo.TagIds)).Returns(foundTags);

            var trip = new Trip()
            {
                Tags = foundTags
            };

            mockedMappingProvider.Setup(x => x.Map <TripCreationInfo, Trip>(tripCreatingInfo))
            .Returns(trip);

            // Act
            tripService.CreateTrip(tripCreatingInfo);

            // Assert
            mockedTripRepo.Verify(x => x.Add(trip), Times.Once);
            mockedUnitOfWork.Verify(x => x.Commit(), Times.Once);
        }
コード例 #12
0
 public ActionResult BookCab([FromQuery] string riderId, [FromQuery] double sourceX, [FromQuery] double sourceY, [FromQuery] double destX, [FromQuery] double destY)
 {
     _tripService.CreateTrip(_riderService.GetRider(riderId), new Location(sourceX, sourceY), new Location(destX, destY));
     return(Ok());
 }