public ParkingLotEntity(ParkingLotDTO parkingLotDto) { Name = parkingLotDto.Name; Capacity = parkingLotDto.Capacity; Location = parkingLotDto.Location; PositionsLeft = Capacity; }
public async Task Should_change_parking_lot_capacity_when_patch() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot6", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); var postResponse = await client.PostAsync($"/parkinglots", content); var id = postResponse.Headers.Location.AbsoluteUri.Split("/")[4]; var parkingLotUpdateModel = new ParkingLotUpdateModel() { Capacity = 2, }; var httpContent2 = JsonConvert.SerializeObject(parkingLotUpdateModel); StringContent content2 = new StringContent(httpContent2, Encoding.UTF8, MediaTypeNames.Application.Json); var response = await client.PatchAsync($"/parkinglots/{id}", content2); response.EnsureSuccessStatusCode(); var scope = Factory.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var context = scopedServices.GetRequiredService <ParkingLotContext>(); Assert.Equal(parkingLotUpdateModel.Capacity, context.ParkingLots.FirstOrDefault().Capacity); }
public async Task Should_query_parking_lot_when_get_by_page() { var client = GetClient(); var parkingLotDto1 = new ParkingLotDTO() { Name = "myLot4", Capacity = 1, Location = " ", }; var parkingLotDto2 = new ParkingLotDTO() { Name = "myLot5", Capacity = 1, Location = " ", }; var httpContent1 = JsonConvert.SerializeObject(parkingLotDto1); StringContent content1 = new StringContent(httpContent1, Encoding.UTF8, MediaTypeNames.Application.Json); var httpContent2 = JsonConvert.SerializeObject(parkingLotDto1); StringContent content2 = new StringContent(httpContent2, Encoding.UTF8, MediaTypeNames.Application.Json); await client.PostAsync($"/parkinglots", content1); await client.PostAsync($"/parkinglots", content2); var response = await client.GetAsync($"/parkinglots?pagesize=1&pageindex=1"); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); List <ParkingLotDTO> actualLots = JsonConvert.DeserializeObject <List <ParkingLotDTO> >(responseString); Assert.Equal(new List <ParkingLotDTO> { parkingLotDto1 }, actualLots); }
public async Task Should_add_order_when_post() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot1", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); await client.PostAsync($"/parkinglots", content); var orderDto = new OrderDTO() { ParkingLotName = "myLot1", PlateNumber = "234", }; var httpContent2 = JsonConvert.SerializeObject(orderDto); StringContent content2 = new StringContent(httpContent2, Encoding.UTF8, MediaTypeNames.Application.Json); var createResponse = await client.PostAsync($"/orders", content2); createResponse.EnsureSuccessStatusCode(); var scope = Factory.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var context = scopedServices.GetRequiredService <ParkingLotContext>(); var firstOrder = await context.Orders.FirstOrDefaultAsync(); Assert.Equal(orderDto, new OrderDTO(firstOrder)); }
public async Task <ActionResult <ParkingLotDTO> > AddAsync(ParkingLotDTO parkingLotDto) { var newLotId = await this.parkingLotService.AddAsync(parkingLotDto); if (string.IsNullOrEmpty(newLotId)) { return(BadRequest()); } return(CreatedAtAction(nameof(Get), new { Id = newLotId }, parkingLotDto)); }
public async Task <string> AddAsync(ParkingLotDTO parkingLotDto) { var parkingLot = new ParkingLotEntity(parkingLotDto); if (parkingLotContext.ParkingLots.Any(p => p.Name == parkingLot.Name)) { return(string.Empty); } if (parkingLotDto.Capacity < 0) { return(string.Empty); } await parkingLotContext.ParkingLots.AddAsync(parkingLot); await parkingLotContext.SaveChangesAsync(); return(parkingLot.Id); }
public async Task Should_close_order_when_patch_order_with_close() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot1", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); await client.PostAsync($"/parkinglots", content); var orderDto = new OrderDTO() { ParkingLotName = "myLot1", PlateNumber = "234", }; var httpContent2 = JsonConvert.SerializeObject(orderDto); StringContent content2 = new StringContent(httpContent2, Encoding.UTF8, MediaTypeNames.Application.Json); var postResponse = await client.PostAsync($"/orders", content2); var id = postResponse.Headers.Location.AbsoluteUri.Split("/")[4]; var orderUpdateModel = new OrderUpdateModel() { IsOpen = false, }; var httpContent3 = JsonConvert.SerializeObject(orderUpdateModel); StringContent content3 = new StringContent(httpContent3, Encoding.UTF8, MediaTypeNames.Application.Json); await client.PatchAsync($"/orders/{id}", content3); var scope = Factory.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var context = scopedServices.GetRequiredService <ParkingLotContext>(); var firstOrder = await context.Orders.FirstOrDefaultAsync(); Assert.False(firstOrder.IsOpen); }
public async Task Should_query_parking_lot_when_get_by_id() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot3", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); var postResponse = await client.PostAsync($"/parkinglots", content); var id = postResponse.Headers.Location.AbsoluteUri.Split("/")[4]; var response = await client.GetAsync($"/parkinglots/{id}"); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); ParkingLotDTO actualLot = JsonConvert.DeserializeObject <ParkingLotDTO>(responseString); Assert.Equal(parkingLotDto, actualLot); }
public async Task Should_delete_parking_lot_when_delete() { var client = GetClient(); var parkingLotDto = new ParkingLotDTO() { Name = "myLot2", Capacity = 1, Location = " ", }; var httpContent = JsonConvert.SerializeObject(parkingLotDto); StringContent content = new StringContent(httpContent, Encoding.UTF8, MediaTypeNames.Application.Json); var postResponse = await client.PostAsync($"/parkinglots", content); var id = postResponse.Headers.Location.AbsoluteUri.Split("/")[4]; var response = await client.DeleteAsync($"/parkinglots/{id}"); response.EnsureSuccessStatusCode(); var scope = Factory.Services.CreateScope(); var scopedServices = scope.ServiceProvider; var context = scopedServices.GetRequiredService <ParkingLotContext>(); Assert.Empty(context.ParkingLots.ToList()); }