コード例 #1
0
        public void Create_WhenPostItem_ThenReturnedTheSameItemAndDeletingIt()
        {
            // Arrange
            var item = Initializer.AeroplaneTypeFaker.Generate();

            var testDto = new AeroplaneTypeDto
            {
                Id       = item.Id,
                Carrying = item.Carrying,
                Model    = item.Model,
                Places   = item.Places
            };

            HttpResponseMessage creatingResponse;
            var jsonRequest = JsonConvert.SerializeObject(testDto);
            var content     = new StringContent(jsonRequest, Encoding.UTF8, "application/json");

            // Act
            using (var client = new HttpClient())
            {
                creatingResponse = client.PostAsync($"{serverName}/api/AeroplaneTypes/", content).Result;
            }

            string jsonResponse = creatingResponse.Content.ReadAsStringAsync().Result;
            var    resultItem   = JsonConvert.DeserializeObject <AeroplaneTypeDto>(jsonResponse);

            // Assert
            Assert.IsNotNull(resultItem);
            Assert.AreEqual(creatingResponse.StatusCode, HttpStatusCode.OK);
        }
コード例 #2
0
        public AeroplaneTypeDto Update(Guid id, AeroplaneTypeDto aeroplaneTypeDto)
        {
            var aeroplaneType = mapper.Map <AeroplaneTypeDto, AeroplaneType>(aeroplaneTypeDto);

            aeroplaneType.Id = id;

            db.AeroplaneTypeRepository.Update(aeroplaneType);

            return(mapper.Map <AeroplaneType, AeroplaneTypeDto>(aeroplaneType));
        }
コード例 #3
0
        public AeroplaneTypeDto Create(AeroplaneTypeDto aeroplaneTypeDto)
        {
            var aeroplaneType = mapper.Map <AeroplaneTypeDto, AeroplaneType>(aeroplaneTypeDto);

            aeroplaneType.Id = Guid.NewGuid();

            db.AeroplaneTypeRepository.Create(aeroplaneType);

            return(mapper.Map <AeroplaneType, AeroplaneTypeDto>(aeroplaneType));
        }
コード例 #4
0
        public void Create_WhenDtoIsEmpty_ThenThrowValidExeption()
        {
            // Arrange
            var dto = new AeroplaneTypeDto()
            {
            };

            var service = new AeroplaneTypeService(unitOfWorkFake, mapper, validator);

            // Act

            // Assert
            Assert.Throws <ValidationException>(() => service.Create(dto));
        }
コード例 #5
0
        public AeroplaneTypeDto Update(Guid id, AeroplaneTypeDto aeroplaneTypeDto)
        {
            var aeroplaneType = mapper.Map <AeroplaneTypeDto, AeroplaneType>(aeroplaneTypeDto);

            aeroplaneType.Id = id;

            var validationResult = validator.Validate(aeroplaneType);

            if (validationResult.IsValid)
            {
                db.AeroplaneTypeRepository.Update(aeroplaneType);
                db.SaveChanges();
            }
            else
            {
                throw new ValidationException(validationResult.Errors);
            }

            return(mapper.Map <AeroplaneType, AeroplaneTypeDto>(aeroplaneType));
        }
コード例 #6
0
        public IActionResult Put(Guid id, [FromBody] AeroplaneTypeDto aeroplaneTypeDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { Type = "ValidationError", ErrorMessage = "Required fields is empty" }));
            }

            AeroplaneTypeDto resultDto;

            try
            {
                resultDto = aeroplaneTypeService.Update(id, aeroplaneTypeDto);
            }
            catch (Exception ex)
            {
                return(BadRequest(new { ErrorType = ex.GetType().Name, ex.Message }));
            }

            return(Ok(resultDto));
        }
コード例 #7
0
        public void Create_WhenDtoIsPassed_ThenReturnedTheSameWithCreatedId()
        {
            // Arrange
            var dto = new AeroplaneTypeDto()
            {
                Model    = "Boeing-747",
                Carrying = 100000,
                Places   = 200
            };

            var service = new AeroplaneTypeService(unitOfWorkFake, mapper, alwaysValidValidator);

            // Act
            var returnedDto = service.Create(dto);

            // Assert
            Assert.True(returnedDto.Id != default(Guid));
            Assert.AreEqual(dto.Model, returnedDto.Model);
            Assert.AreEqual(dto.Carrying, returnedDto.Carrying);
            Assert.AreEqual(dto.Places, returnedDto.Places);
        }
コード例 #8
0
        public void Update_WhenUpdateItemWithUknownId_ThenReturnedBadRequest()
        {
            // Arrange
            var updateDto = new AeroplaneTypeDto
            {
                Carrying = 100000,
                Model    = "NewModelName",
                Places   = 50
            };

            // Act
            HttpResponseMessage updatingResponse;
            var jsonUpdatingRequest = JsonConvert.SerializeObject(updateDto);
            var putContext          = new StringContent(jsonUpdatingRequest, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                updatingResponse = client.PutAsync($"{serverName}/api/AeroplaneTypes/{Guid.NewGuid()}", putContext).Result;
            }

            // Assert
            Assert.AreEqual(updatingResponse.StatusCode, HttpStatusCode.BadRequest);
        }
コード例 #9
0
        public void Setup()
        {
            serverName = "http://localhost:57338";

            var builder = new DbContextOptionsBuilder <AirportContext>()
                          .UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=AirportDb(Bilyk);Trusted_Connection=True;");

            addedItem = Initializer.AeroplaneTypeFaker.Generate();

            testDto = new AeroplaneTypeDto
            {
                Id       = addedItem.Id,
                Carrying = addedItem.Carrying,
                Model    = addedItem.Model,
                Places   = addedItem.Places
            };

            db = new AirportContext(builder.Options);

            // Adding test item to db
            db.AeroplaneTypes.Add(addedItem);
            db.SaveChanges();
        }
コード例 #10
0
        public void PUT_WhenPuttNewItem_ThenServiceReturnOkAndThisObject()
        {
            //Arrange
            var AeroplaneType = new AeroplaneTypeDto
            {
                Id       = Guid.NewGuid(),
                Model    = "Model",
                Carrying = 100000,
                Places   = 50
            };

            var fakeService = A.Fake <IAeroplaneTypeService>();

            A.CallTo(() => fakeService.Update(AeroplaneType.Id, AeroplaneType)).Returns(AeroplaneType);

            var controller = new AeroplaneTypesController(fakeService);

            //Act
            var response = controller.Post(AeroplaneType) as ObjectResult;

            //Assert
            Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode);
            Assert.IsInstanceOf(typeof(AeroplaneTypeDto), response.Value);
        }