/// <inheritdoc/> public override async Task <IEnumerable <MeUser> > Handle(UsersRetrievalQuery param) { if (param == null) { throw new ArgumentNullException(nameof(param)); } IEnumerable <MeUser> result; if (param.ForLookup) { // Need to include permissions to ensure lookups can be filtered. result = await GetItemsAsync <MeUser>(x => true, user => new { id = user.UserId, first_name = user.FirstName, last_name = user.LastName, gmc_number = user.GmcNumber, permissions = user.Permissions, }); } else { result = await GetItemsAsync <MeUser>(x => true); } return(result); }
public async Task Handle_ReturnsUsers(bool forLookup) { // Arrange var query = new UsersRetrievalQuery(forLookup, null); // Act var results = (await Service.Handle(query)).ToList(); // Assert results.Should().NotBeNull(); results.Count.Should().Be(2); var user1 = results.Single(user => user.UserId == "userId1"); user1.FirstName.Should().Be("barry"); user1.LastName.Should().Be("stow"); user1.GmcNumber.Should().Be("GmcNumber1"); var user2 = results.Single(user => user.UserId == "userId2"); user2.FirstName.Should().Be("john"); user2.LastName.Should().Be("battye"); user2.GmcNumber.Should().Be("GmcNumber2"); if (!forLookup) { results.First(u => u.UserId == "userId1").Email.Should().Be("email1"); results.First(u => u.UserId == "userId1").GmcNumber.Should().Be("GmcNumber1"); } }