public void ShouldReturnCurrentLoggedInUser() { var securityContext = A.Fake <ISecurityContext>(); ConfigureSecurityContextFactory_ToReturn(securityContext); var expectedRequest = new GetCurrentUserRequest { SecurityContext = securityContext }; var expectedUser = new Api.Models.User { UniqueId = Guid.NewGuid() }; A.CallTo(() => _getCurrentUserHandler.Handle(A <GetCurrentUserRequest> .That.HasSamePropertyValuesAs(expectedRequest))).Returns(expectedUser); var actual = Get(); Assert.That(actual.StatusCode, Is.EqualTo(HttpStatusCode.OK)); var actualDeserialized = actual.Body.DeserializeJson <Api.Models.User>(); Assert.That(actualDeserialized.HasSamePropertyValuesAs(expectedUser)); A.CallTo(() => _getCurrentUserHandler .Handle(A <GetCurrentUserRequest> .That.Matches(req => req.HasSamePropertyValuesAs(expectedRequest)))) .MustHaveHappened(); }
/// <summary> /// Creates a new <see cref="User"/> from a given <paramref name="model"/>. /// </summary> /// <param name="model">The <see cref="Api.Models.User"/> to use as a template.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> for the operation.</param> /// <returns>A <see cref="Task{TResult}"/> resulting in a new <see cref="User"/> on success, <see langword="null"/> if the requested <see cref="UserGroup"/> did not exist.</returns> async Task <Models.User> CreateNewUserFromModel(Api.Models.User model, CancellationToken cancellationToken) { Models.PermissionSet permissionSet = null; Models.UserGroup group = null; if (model.Group != null) { group = await DatabaseContext .Groups .AsQueryable() .Where(x => x.Id == model.Group.Id) .Include(x => x.PermissionSet) .FirstOrDefaultAsync(cancellationToken) .ConfigureAwait(false); } else { permissionSet = new Models.PermissionSet { AdministrationRights = model.PermissionSet?.AdministrationRights ?? AdministrationRights.None, InstanceManagerRights = model.PermissionSet?.InstanceManagerRights ?? InstanceManagerRights.None, } }; return(new Models.User { CreatedAt = DateTimeOffset.UtcNow, CreatedBy = AuthenticationContext.User, Enabled = model.Enabled ?? false, PermissionSet = permissionSet, Group = group, Name = model.Name, SystemIdentifier = model.SystemIdentifier, OAuthConnections = model .OAuthConnections ?.Select(x => new Models.OAuthConnection { Provider = x.Provider, ExternalUserId = x.ExternalUserId }) .ToList() ?? new List <Models.OAuthConnection>(), }); } }
public async Task GivenContextWithUser_ReturnsAdaptedUser() { var user = new User { Login = new Login { Value = "JohnD" }, LastName = "Doe" }; ConfigureSecurityContext_ToReturn(user); var request = new GetCurrentUserRequest { SecurityContext = _securityContext }; var expected = new Api.Models.User { LastName = "Doe" }; A.CallTo(() => _userAdapter.Adapt(user)).Returns(expected); var actual = await _sut.Handle(request); actual.ShouldBeEquivalentTo(expected); }