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(); }
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); }
public Task <IActionResult> Post([FromBody] StartRideDto newRide) { throw new NotImplementedException(); }