コード例 #1
0
        public async Task <IActionResult> Post([FromBody] NewPersonCarModel personCarModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var person = await _peopleRepository.GetAsync(personCarModel.PersonId);

            if (person == null)
            {
                return(NotFound(personCarModel.PersonId));
            }

            var car = await _carRepository.GetByIdAsync(personCarModel.CarId);

            if (car == null)
            {
                return(NotFound(personCarModel.CarId));
            }

            person.AddCar(new PersonCar()
            {
                Car = car, Person = person
            });


            await _peopleRepository.UpdateAsync(person);

            return(Ok());
            // For more information on protecting this API from Cross Site Request Forgery (CSRF) attacks, see http://go.microsoft.com/fwlink/?LinkID=717803
        }
コード例 #2
0
        public async Task Post_ReturnsTaskCompletedTask()
        {
            // Arrange
            int carId          = 1;
            int personId       = 1;
            var testPerson     = GetTestPerson();
            var mockPeopleRepo = new Mock <IPeopleRepository>();

            mockPeopleRepo.Setup(repo => repo.GetAsync(personId))
            .Returns(Task.FromResult(testPerson));

            var testCar     = GetTestCar();
            var mockCarRepo = new Mock <ICarRepository>();

            mockCarRepo.Setup(repo => repo.GetByIdAsync(carId))
            .Returns(Task.FromResult(testCar));

            var controller = new PersonCarController(mockPeopleRepo.Object, mockCarRepo.Object);

            var newPersonCar = new NewPersonCarModel()
            {
                CarId    = carId,
                PersonId = personId
            };

            mockPeopleRepo.Setup(repo => repo.UpdateAsync(testPerson))
            .Returns(Task.CompletedTask)
            .Verifiable();

            // Act
            var result = await controller.Post(newPersonCar);

            // Assert
            var okResult = Assert.IsType <OkResult>(result);

            mockPeopleRepo.Verify();
        }