public async Task PostPilotRequestCreatesPilot()
        {
            var pilot = new EditablePilotFields
            {
                SecondName = "Test",
                FirstName  = "Pilot",
                BirthDate  = DateTime.Now.AddYears(-25),
                Experience = 5
            };
            var content  = new StringContent(JsonConvert.SerializeObject(pilot), Encoding.UTF8, "application/json");
            var response = await _client.PostAsync("/api/pilots", content);

            Assert.IsNotNull(response);
            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
            var createdObjectString = await response.Content.ReadAsStringAsync();

            var insertedPilot = JsonConvert.DeserializeObject <PilotDto>(createdObjectString);

            Assert.IsNotNull(insertedPilot);
            Assert.Greater(insertedPilot.Id, 0);
            Assert.AreEqual(pilot.FirstName, insertedPilot.FirstName);
            Assert.AreEqual(pilot.SecondName, insertedPilot.SecondName);
            Assert.AreEqual(pilot.Experience, insertedPilot.Experience);
            Assert.AreEqual(pilot.BirthDate, insertedPilot.BirthDate);
        }
示例#2
0
        public async Task <int> Insert(EditablePilotFields createPilotRequest)
        {
            var entityToUpdate = _mapper.Map <Pilot>(createPilotRequest);
            await _unitOfWork.PilotRepository.Insert(entityToUpdate);

            await _unitOfWork.SaveChangesAsync();

            return(entityToUpdate.Id);
        }
示例#3
0
        public async Task <ActionResult> Post([FromBody] EditablePilotFields createPilotRequest)
        {
            var insertedId = await _pilotService.Insert(createPilotRequest);

            var result = await _pilotService.GetById(insertedId);

            var url = Url.Link("GetPilot", new { id = result.Id });

            return(Created(url, result));
        }
示例#4
0
        public async Task <ActionResult> Put(int id, [FromBody] EditablePilotFields updatePilotRequest)
        {
            var success = await _pilotService.Update(id, updatePilotRequest);

            if (success)
            {
                return(Ok());
            }

            return(BadRequest());
        }
示例#5
0
        public async Task <bool> Update(int id, EditablePilotFields updatePilotRequest)
        {
            var pilotToUpdate = _mapper.Map <Pilot>(updatePilotRequest);

            pilotToUpdate.Id = id;
            var result = await _unitOfWork.PilotRepository.Update(pilotToUpdate);

            await _unitOfWork.SaveChangesAsync();

            return(result);
        }
        private async Task <int> InsertPilot(EditablePilotFields pilotFields)
        {
            var content  = new StringContent(JsonConvert.SerializeObject(pilotFields), Encoding.UTF8, "application/json");
            var response = await _client.PostAsync("/api/pilots", content);

            var createdObjectString = await response.Content.ReadAsStringAsync();

            var insertedPilot = JsonConvert.DeserializeObject <PilotDto>(createdObjectString);

            return(insertedPilot.Id);
        }
示例#7
0
        public async Task PilotControllerPostReturnCreatedResult()
        {
            var pilot = new EditablePilotFields
            {
                SecondName = "Test",
                FirstName  = "Tester",
                BirthDate  = new DateTime(2001, 12, 12),
                Experience = 5
            };

            var createdPilot = await _pilotsController.Post(pilot) as CreatedResult;

            Assert.IsNotNull(createdPilot);
            Assert.AreEqual(201, createdPilot.StatusCode);
        }
示例#8
0
        public async Task PilotControllerPutInvalidIdBadRequest()
        {
            var pilotUpdateRequest = new EditablePilotFields
            {
                BirthDate  = new DateTime(2018, 12, 12),
                Experience = 1,
                FirstName  = "PilotUpdated",
                SecondName = "TesterUpdated",
            };

            var updateBadRequestResult = await _pilotsController.Put(99, pilotUpdateRequest) as BadRequestResult;

            Assert.IsNotNull(updateBadRequestResult);
            Assert.AreEqual(400, updateBadRequestResult.StatusCode);
        }
        public async Task PutPilotRequestUpdatesPilot(int id, string firstName, string secondName, DateTime birthDate, int experience)
        {
            var pilot = new EditablePilotFields
            {
                SecondName = firstName,
                FirstName  = secondName,
                BirthDate  = birthDate,
                Experience = experience
            };

            var content  = new StringContent(JsonConvert.SerializeObject(pilot), Encoding.UTF8, "application/json");
            var response = await _client.PutAsync($"/api/pilots/{id}", content);

            Assert.IsNotNull(response);
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
        public async Task DeletePilotRequestReturnsSuccess(string firstName, string secondName, DateTime birthDate,
                                                           int experience)
        {
            var pilot = new EditablePilotFields
            {
                SecondName = firstName,
                FirstName  = secondName,
                BirthDate  = birthDate,
                Experience = experience
            };
            var insertedId = await InsertPilot(pilot);

            var response = await _client.DeleteAsync($"/api/pilots/{insertedId}");

            Assert.IsNotNull(response);
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
        public async Task PostPilotRequestValidation()
        {
            var pilot = new EditablePilotFields
            {
                SecondName = "Test",
                FirstName  = "Pilot",
                BirthDate  = DateTime.Now.AddYears(-100)
            };

            var content  = new StringContent(JsonConvert.SerializeObject(pilot), Encoding.UTF8, "application/json");
            var response = await _client.PostAsync("/api/pilots", content);

            Assert.IsNotNull(response);

            var contentResponse = await response.Content.ReadAsStringAsync();

            Assert.IsNotNull(contentResponse);
        }
示例#12
0
        public async Task PilotControllerPutUpdatesPilot()
        {
            var initialPilot = (await _pilotsController.Get(1) as OkObjectResult)?.Value as PilotDto;

            Assert.IsNotNull(initialPilot);

            var updateSecondName = "TesterUpdated";
            var updateFirstName  = "PilotUpdated";
            var updateBirthDate  = new DateTime(2018, 12, 12);
            var updateExperience = 1;

            var pilotUpdateRequest = new EditablePilotFields
            {
                SecondName = updateSecondName,
                FirstName  = updateFirstName,
                BirthDate  = updateBirthDate,
                Experience = updateExperience
            };

            var updateResult = await _pilotsController.Put(1, pilotUpdateRequest) as OkResult;

            Assert.IsNotNull(updateResult);
            Assert.AreEqual(200, updateResult.StatusCode);

            var updatedPilot = (await _pilotsController.Get(1) as OkObjectResult)?.Value as PilotDto;

            Assert.IsNotNull(updatedPilot);

            Assert.AreEqual(updateSecondName, updatedPilot.SecondName);
            Assert.AreEqual(updateFirstName, updatedPilot.FirstName);
            Assert.AreEqual(updateBirthDate, updatedPilot.BirthDate);
            Assert.AreEqual(updateExperience, updatedPilot.Experience);

            Assert.AreEqual(initialPilot.Id, updatedPilot.Id);
            Assert.AreNotEqual(initialPilot.FirstName, updatedPilot.FirstName);
            Assert.AreNotEqual(initialPilot.SecondName, updatedPilot.SecondName);
            Assert.AreNotEqual(initialPilot.BirthDate, updatedPilot.BirthDate);
            Assert.AreNotEqual(initialPilot.Experience, updatedPilot.Experience);
        }