public void UserIsVerifiedAndResourceReturned() { MethodToTest(() => service.GetUserProfile(A <Auth0UserProfile> .Ignored, A <IPrincipal> .Ignored)); var user = new Auth0User { Id = "someId" }; var auth0Profile = new Auth0UserProfile { sub = user.Id }; var auth0UserSet = new FakeDbSet <Auth0User> { user }; A.CallTo(() => dependencies.StorageService.SetOf <Auth0User>()).Returns(auth0UserSet); A.CallTo(() => service.BuildAuth0User(auth0Profile)).Returns(user); var claimsIdentity = new ClaimsIdentity(); var resource = new UserProfileResource(); A.CallTo(() => service.BuildUserProfileResource(user)).Returns(resource); var principal = A.Fake <IPrincipal>(); A.CallTo(() => principal.Identity).Returns(claimsIdentity); var result = service.GetUserProfile(auth0Profile, principal); Assert.AreSame(resource, result); A.CallTo(() => service.VerifyProfile(auth0Profile, claimsIdentity)).MustHaveHappened(); }
public void NewUserProfileIsAddedAndResourceReturned() { MethodToTest(() => service.GetUserProfile(A <Auth0UserProfile> .Ignored, A <IPrincipal> .Ignored)); var auth0Profile = new Auth0UserProfile(); var auth0UserSet = new FakeDbSet <Auth0User>(); A.CallTo(() => dependencies.StorageService.SetOf <Auth0User>()).Returns(auth0UserSet); var user = new Auth0User(); A.CallTo(() => service.BuildAuth0User(auth0Profile)).Returns(user); var claimsIdentity = new ClaimsIdentity(); var resource = new UserProfileResource(); A.CallTo(() => service.BuildUserProfileResource(user)).Returns(resource); var principal = A.Fake <IPrincipal>(); A.CallTo(() => principal.Identity).Returns(claimsIdentity); var result = service.GetUserProfile(auth0Profile, principal); Assert.AreSame(resource, result); A.CallTo(() => service.VerifyProfile(auth0Profile, claimsIdentity)).MustHaveHappened(); Assert.AreEqual(1, auth0UserSet.Count()); Assert.AreSame(user, auth0UserSet.First()); A.CallTo(() => dependencies.StorageService.SaveChanges()).MustHaveHappened(); }
public async Task GetUserProfile_ShouldReturnOkResult_WhenUserExists() { // Arrange const int userId = 1; UserProfileResource expectedUserProfile = new UserProfileResource { UserId = 1 }; _mediatorMock .Setup(m => m.Send(It.IsAny <GetUserProfileQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(expectedUserProfile); UserController controller = new UserController(_mediatorMock.Object, null); // Act ActionResult <UserProfileResource> response = await controller.GetUserProfile(userId); // Assert OkObjectResult result = Assert.IsType <OkObjectResult>(response.Result); UserProfileResource profile = (UserProfileResource)result.Value; Assert.Equal(1, profile.UserId); }
public async Task GetUserProfileQueryHandler_ShouldReturnUserProfile_WhenIdIsValid() { // Arrange GetUserProfileQuery request = new() { UserId = 1 }; User expectedUser = new() { UserId = 1, Availability = new Availability { Status = AvailabilityStatus.Online } }; _unitOfWorkMock .Setup(m => m.Users.GetByIdAsync(It.IsAny <int>())) .ReturnsAsync(expectedUser); GetUserProfileQuery.Handler handler = new(_mapperMock, _unitOfWorkMock.Object); // Act UserProfileResource userProfile = await handler.Handle(request); // Assert Assert.NotNull(userProfile); Assert.Equal(request.UserId, userProfile.UserId); } [Fact]
public async Task GetUserProfileQueryHandler_ShouldReturnNull_WhenIdIsInvalid() { // Arrange GetUserProfileQuery request = new() { UserId = 2181 }; _unitOfWorkMock .Setup(m => m.Users.GetByIdAsync(request.UserId)) .ReturnsAsync(null as User); GetUserProfileQuery.Handler handler = new(_mapperMock, _unitOfWorkMock.Object); // Act UserProfileResource userProfile = await handler.Handle(request); // Assert Assert.Null(userProfile); } }
public async Task <ActionResult <UserProfileResource> > GetUserProfile([FromRoute] int userId, CancellationToken cancellationToken = default) { GetUserProfileQuery query = new GetUserProfileQuery { UserId = userId }; UserProfileResource userProfile = await _mediator.Send(query, cancellationToken); if (userProfile == null) { return(NotFound(new ErrorResource { StatusCode = StatusCodes.Status404NotFound, Message = $"A user with the ID '{userId}' does not exist" })); } return(Ok(userProfile)); }
public async Task GetUserProfileQueryHandler_ShouldReturnNull_WhenIdIsInvalid() { // Arrange GetUserProfileQuery request = new GetUserProfileQuery { UserId = 2181 }; Mock <IQueryable <User> > userQueryableMock = Enumerable .Empty <User>() .AsQueryable() .BuildMock(); _unitOfWorkMock .Setup(m => m.Users.GetById(request.UserId)) .Returns(userQueryableMock.Object); GetUserProfileQuery.Handler handler = new GetUserProfileQuery.Handler(_mapperMock, _unitOfWorkMock.Object); // Act UserProfileResource userProfile = await handler.Handle(request); // Assert Assert.Null(userProfile); }