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));
        }
コード例 #4
0
        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>());
        }