public void MapServerResponseToRequest()
        {
            var mapper = new ApiAirTransportServerModelMapper();
            var model  = new ApiAirTransportServerResponseModel();

            model.SetProperties(1, 1, "A", 1, DateTime.Parse("1/1/1987 12:00:00 AM"), 1, DateTime.Parse("1/1/1987 12:00:00 AM"));
            ApiAirTransportServerRequestModel response = mapper.MapServerResponseToRequest(model);

            response.Should().NotBeNull();
            response.AirlineId.Should().Be(1);
            response.FlightNumber.Should().Be("A");
            response.HandlerId.Should().Be(1);
            response.LandDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.PipelineStepId.Should().Be(1);
            response.TakeoffDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
        }
        public void CreatePatch()
        {
            var mapper = new ApiAirTransportServerModelMapper();
            var model  = new ApiAirTransportServerRequestModel();

            model.SetProperties(1, "A", 1, DateTime.Parse("1/1/1987 12:00:00 AM"), 1, DateTime.Parse("1/1/1987 12:00:00 AM"));

            JsonPatchDocument <ApiAirTransportServerRequestModel> patch = mapper.CreatePatch(model);
            var response = new ApiAirTransportServerRequestModel();

            patch.ApplyTo(response);
            response.AirlineId.Should().Be(1);
            response.FlightNumber.Should().Be("A");
            response.HandlerId.Should().Be(1);
            response.LandDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
            response.PipelineStepId.Should().Be(1);
            response.TakeoffDate.Should().Be(DateTime.Parse("1/1/1987 12:00:00 AM"));
        }
        public virtual async void TestUpdate()
        {
            var builder = new WebHostBuilder()
                          .UseEnvironment("Production")
                          .UseStartup <TestStartup>();
            TestServer testServer = new TestServer(builder);

            var client = new ApiClient(testServer.CreateClient());

            client.SetBearerToken(JWTTestHelper.GenerateBearerToken());
            var mapper = new ApiAirTransportServerModelMapper();
            ApplicationDbContext context             = testServer.Host.Services.GetService(typeof(ApplicationDbContext)) as ApplicationDbContext;
            IAirTransportService service             = testServer.Host.Services.GetService(typeof(IAirTransportService)) as IAirTransportService;
            ApiAirTransportServerResponseModel model = await service.Get(1);

            ApiAirTransportClientRequestModel request = mapper.MapServerResponseToClientRequest(model);

            request.SetProperties(2, "B", 1, DateTime.Parse("1/1/1988 12:00:00 AM"), 2, DateTime.Parse("1/1/1988 12:00:00 AM"));

            UpdateResponse <ApiAirTransportClientResponseModel> updateResponse = await client.AirTransportUpdateAsync(model.Id, request);

            context.Entry(context.Set <AirTransport>().ToList()[0]).Reload();
            updateResponse.Record.Should().NotBeNull();
            updateResponse.Success.Should().BeTrue();
            updateResponse.Record.Id.Should().Be(1);
            context.Set <AirTransport>().ToList()[0].AirlineId.Should().Be(2);
            context.Set <AirTransport>().ToList()[0].FlightNumber.Should().Be("B");
            context.Set <AirTransport>().ToList()[0].HandlerId.Should().Be(1);
            context.Set <AirTransport>().ToList()[0].LandDate.Should().Be(DateTime.Parse("1/1/1988 12:00:00 AM"));
            context.Set <AirTransport>().ToList()[0].PipelineStepId.Should().Be(2);
            context.Set <AirTransport>().ToList()[0].TakeoffDate.Should().Be(DateTime.Parse("1/1/1988 12:00:00 AM"));

            updateResponse.Record.Id.Should().Be(1);
            updateResponse.Record.AirlineId.Should().Be(2);
            updateResponse.Record.FlightNumber.Should().Be("B");
            updateResponse.Record.HandlerId.Should().Be(1);
            updateResponse.Record.LandDate.Should().Be(DateTime.Parse("1/1/1988 12:00:00 AM"));
            updateResponse.Record.PipelineStepId.Should().Be(2);
            updateResponse.Record.TakeoffDate.Should().Be(DateTime.Parse("1/1/1988 12:00:00 AM"));
        }