public ParkingLotEntity(ParkingLotDTO parkingLotDto)
 {
     Name          = parkingLotDto.Name;
     Capacity      = parkingLotDto.Capacity;
     Location      = parkingLotDto.Location;
     PositionsLeft = Capacity;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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());
        }