public async Task GetGuestInvitesByUserIdAsyncGetsItems() { var userId = Guid.NewGuid(); var invites = new List <GuestInvite> { GuestInvite.Example(), GuestInvite.Example(), GuestInvite.Example() }; var moreInvites = new List <GuestInvite> { GuestInvite.Example(), GuestInvite.Example(), GuestInvite.Example() }; invites.ForEach(w => w.UserId = userId); invites.AddRange(moreInvites); var request = GetGuestInvitesRequest.Example(); request.GuestUserId = userId; request.GuestEmail = "*****@*****.**"; _guestInviteRepositoryMock.Setup(m => m.GetItemsAsync(It.IsAny <Expression <Func <GuestInvite, bool> > >(), It.IsAny <BatchOptions>(), It.IsAny <CancellationToken>())) .Returns <Expression <Func <GuestInvite, bool> >, BatchOptions, CancellationToken>((predicate, o, c) => { var expression = predicate.Compile(); IEnumerable <GuestInvite> sublist = invites.Where(expression).ToList(); return(Task.FromResult(sublist)); }); var result = await _target.GetGuestInvitesForUserAsync(request); Assert.True(result != null && result.Count() == invites.Count - moreInvites.Count); }
public async Task GetGuestInvitesByUserIdReturnsEmptyListForNotInvites() { var request = GetGuestInvitesRequest.Example(); var result = await _target.GetGuestInvitesForUserAsync(request); Assert.Empty(result); }
public async Task GetGuestInvitesByUserIdAsyncThrowsIfValidationFails() { var request = GetGuestInvitesRequest.Example(); request.GuestEmail = ""; request.GuestUserId = Guid.Empty; _validatorMock .Setup(v => v.Validate(It.IsAny <object>())) .Returns(new ValidationResult { Errors = { new ValidationFailure(string.Empty, string.Empty) } }); await Assert.ThrowsAsync <ValidationFailedException>(() => _target.GetGuestInvitesForUserAsync(request)); }
public async Task <IEnumerable <GuestInvite> > GetGuestInvitesForUserAsync(GetGuestInvitesRequest request) { var validationResult = _validatorLocator.Validate <GetGuestInvitesRequestValidator>(request); if (!validationResult.IsValid) { _logger.Error("Failed to validate the userId while attempting to retrieve GuestInvite resources."); throw new ValidationFailedException(validationResult.Errors); } var result = await _guestInviteRepository.GetItemsAsync(x => request.GuestUserId != null && x.UserId == request.GuestUserId || request.GuestEmail != null && x.GuestEmail == request.GuestEmail); if (result != null) { return(result); } return(new List <GuestInvite>()); }