示例#1
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>();
        }
示例#2
0
        public void OrderTrip_ShouldAttachCustomerToTheTrip()
        {
            // Arrange
            var customer = new Domain.Core.Customer().WithName("Dan").Is(Gender.Male) as Domain.Core.Customer;
            var trip     = new Domain.Core.Trip().IsFrom("Kyiv").IsTo("Brovary");

            _unitOfWork.Trips.Get(trip.Id).Returns(trip);

            // Act
            var service = new TripService(_unitOfWork, _mapper);

            service.OrderTrip(trip.Id, customer);

            // Assert
            trip.Customer.Should().BeEquivalentTo(customer);
        }
示例#3
0
        public void CreateTrip(Domain.Core.Trip trip)
        {
            trip.CheckForNull();

            var dbTrip = UnitOfWork.Trips.GetAll().FirstOrDefault(x => x.Id == trip.Id);

            if (dbTrip != null)
            {
                if (dbTrip.Driver != null)
                {
                    throw new InvalidOperationException("Trip already exists");
                }

                UnitOfWork.Trips.Update(trip);
            }
            else
            {
                UnitOfWork.Trips.Create(trip);
            }

            UnitOfWork.SaveChanges();
        }