示例#1
0
        public async Task StartRide()
        {
            var newTaxi = await DbContext.AddDummyTaxiAsync();

            var newDriver = await DbContext.AddDummyDriverAsync();

            var startRide = new StartRideDto
            {
                TaxiID   = newTaxi.ID,
                DriverID = newDriver.ID
            };

            var body     = new StringContent(JsonConvert.SerializeObject(startRide), Encoding.UTF8, "application/json");
            var response = await Client.PostAsync("/api/rides", body);

            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);

            var newRide = JsonConvert.DeserializeObject <TaxiRide>(await response.Content.ReadAsStringAsync());

            Assert.AreEqual(newTaxi.Taxi.LicensePlate, newRide.Taxi.LicensePlate);
            Assert.AreEqual(newTaxi.ID, newRide.Taxi.ID);
            Assert.AreEqual(newDriver.Driver.Name, newRide.Driver.Name);
            Assert.AreEqual(newDriver.ID, newRide.Driver.ID);
            Assert.IsTrue(newRide.Start <= DateTime.Now && newRide.Start >= DateTime.Now.AddSeconds(-5));
        }
        public async Task <IActionResult> Post([FromBody] StartRideDto newRide)
        {
            if (newRide == null)
            {
                return(BadRequest("Missing body"));
            }

            var taxi = await DbContext.Taxis.FirstOrDefaultAsync(t => t.ID == newRide.TaxiID);

            if (taxi == null)
            {
                return(NotFound("Taxi with specified ID not found"));
            }

            var driver = await DbContext.Drivers.FirstOrDefaultAsync(t => t.ID == newRide.DriverID);

            if (driver == null)
            {
                return(NotFound("Driver with specified ID not found"));
            }

            var newRideID = await DbContext.StartRideAsync(taxi, driver);

            return(StatusCode(201, await DbContext.Rides.FirstAsync(r => r.ID == newRideID)));
        }
        public async Task StartRideAsync()
        {
            var startRide = new StartRideDto
            {
                TaxiID   = SelectedTaxi.ID,
                DriverID = SelectedDriver.ID
            };

            await PostToServiceAsync("/api/rides", startRide);
            await RefreshRidesAsync();
        }
示例#4
0
        public async Task StartRideInvalidDriver()
        {
            var(_, newTaxiID) = await DbContext.AddDummyTaxiAsync();

            var startRide = new StartRideDto
            {
                TaxiID   = newTaxiID,
                DriverID = Int32.MaxValue
            };

            var body     = new StringContent(JsonConvert.SerializeObject(startRide), Encoding.UTF8, "application/json");
            var response = await Client.PostAsync("/api/rides", body);

            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
示例#5
0
 public Task <IActionResult> Post([FromBody] StartRideDto newRide)
 {
     throw new NotImplementedException();
 }