public async Task PostMethodSetsLocationHeader()
        {
            // Arrange
            UserDto userDto = new UserDto
            {
                Name      = "Prueba",
                BirthDate = new DateTime(1945, 2, 5)
            };

            _addUserService.Stub(s => s.AddUser(userDto)).Return(Task.CompletedTask);
            _getUserService.Stub(g => g.GetUserAll()).Return(Task.FromResult <IEnumerable <UserDto> >(GetUserDtoAll().AsEnumerable()));
            var controller = new AddUserController(
                _addUserService,
                _getUserService);

            // Act
            IHttpActionResult actionResult = await controller.Post(userDto);

            var createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <UserDto>;

            // Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual("GetById", createdResult.RouteName);
            Assert.AreEqual(2, createdResult.RouteValues["id"]);
        }
        public async Task PostReturnsThrowExceptionUserHasNotLegalAge()
        {
            // Arrange
            UserDto userDto = new UserDto
            {
                Id        = 1,
                Name      = "Prueba",
                BirthDate = new DateTime(1945, 2, 5)
            };

            _addUserService.Stub(s => s.AddUser(userDto))
            .Throw(new BusinessException(Resource.ExceptionUserMustBeLegalAge));
            var controller = new AddUserController(
                _addUserService,
                _getUserService);

            // Act
            IHttpActionResult actionResult = await controller.Post(userDto);
        }