Exemple #1
0
        public async Task <IActionResult> UpdateUserInfo(
            [FromServices] IUpdateUserUseCase useCase,
            [FromServices] UpdateUserPresenter presenter,
            [FromBody] InputUserDto input)
        {
            await useCase.Execute(new UpdateUserInput(
                                      input.Name,
                                      input.Surname,
                                      input.Email,
                                      input.Password));

            return(presenter.ViewModel);
        }
        public void Handle_DuplicatedUserName_ReturnsConflictActionResult()
        {
            // Arrange
            var response  = UpdateUserResponse.DuplicatedUserName(new[] { "Whatever" });
            var presenter = new UpdateUserPresenter();

            // Act
            presenter.Handle(response);

            // Assert
            var actionResult = presenter.ActionResult as ConflictResult;

            Assert.AreEqual((int)HttpStatusCode.Conflict, actionResult.StatusCode);
        }
        public void Handle_UserNotFound_ReturnsNotFoundActionResult()
        {
            // Arrange
            var response  = UpdateUserResponse.UserNotFound(new [] { "Whatever" });
            var presenter = new UpdateUserPresenter();

            // Act
            presenter.Handle(response);

            // Assert
            var actionResult = presenter.ActionResult as NotFoundResult;

            Assert.AreEqual((int)HttpStatusCode.NotFound, actionResult.StatusCode);
        }
        public void Handle_UserUpdated_ReturnsOkActionResultWithTheUpdatedUser()
        {
            // Arrange
            var createdUser = new UserBuilder()
                              .WithName(new Name("TestName"))
                              .WithRoles(new Role(new Name("TestRole")))
                              .Build();
            var response  = UpdateUserResponse.Success(createdUser);
            var presenter = new UpdateUserPresenter();

            // Act
            presenter.Handle(response);

            // Assert
            var createdActionResult = presenter.ActionResult as OkObjectResult;

            Assert.AreEqual((int)HttpStatusCode.OK, createdActionResult.StatusCode);
            var userModel = createdActionResult.Value as UserModel;

            Assert.AreEqual(createdUser.UserName.Value, userModel.UserName);
            Assert.AreEqual(createdUser.Id, userModel.Id);
            CollectionAssert.AreEquivalent(createdUser.Roles.Select(role => role.Name.Value).ToList(), userModel.Roles.ToList());
        }