コード例 #1
0
        public async Task UpdateClubMember_ToNotExistingClubMembership_DatabaseUpdates()
        {
            var clubSubscription = new ClubSubscription()
            {
                ClubId             = Guid.NewGuid(),
                ClubSubscriptionId = Guid.NewGuid()
            };
            var clubMember = new ClubMember()
            {
                ClubId             = clubSubscription.ClubId,
                UserId             = Guid.NewGuid(),
                ClubSubscriptionId = clubSubscription.ClubSubscriptionId
            };

            using (var context = _factory.CreateContext())
            {
                await context.ClubSubscriptions.AddRangeAsync(clubSubscription);

                await context.ClubMembers.AddAsync(clubMember);

                await context.SaveChangesAsync();
            }

            var request = new UpdateClubMemberRequest()
            {
                ClubId             = clubSubscription.ClubId,
                ClubSubscriptionId = Guid.NewGuid(),
                UserId             = clubMember.UserId
            };

            Assert.ThrowsAsync <DbUpdateException>(async() =>
                                                   await _mutations.UpdateClubMemberAsync(request));

            await _publish.Received(0).Publish(Arg.Any <ClubMemberUpdatedEvent>());
        }
コード例 #2
0
        public async Task <ClubMember> UpdateClubMemberAsync(UpdateClubMemberRequest request)
        {
            var item = await _context.ClubMembers.SingleOrThrowAsync(ci => ci.UserId == request.UserId && ci.ClubId == request.ClubId);

            await IsAdminIn(item.ClubId);

            item.ClubSubscriptionId = request.ClubSubscriptionId;
            _context.ClubMembers.Update(item);

            var @event = _mapper.Map <ClubMemberUpdatedEvent>(item);
            await _eventService.SaveEventAndDbContextChangesAsync(@event);

            await _eventService.PublishEventAsync(@event);

            return(item);
        }
コード例 #3
0
        public async Task UpdateClubMember_ValidRequest_DatabaseUpdates()
        {
            var clubSubscription = new ClubSubscription()
            {
                ClubId             = Guid.NewGuid(),
                ClubSubscriptionId = Guid.NewGuid()
            };
            var clubSubscription2 = new ClubSubscription()
            {
                ClubId             = clubSubscription.ClubId,
                ClubSubscriptionId = Guid.NewGuid()
            };
            var clubMember = new ClubMember()
            {
                ClubId             = clubSubscription.ClubId,
                UserId             = Guid.NewGuid(),
                ClubSubscriptionId = clubSubscription.ClubSubscriptionId
            };

            using (var context = _factory.CreateContext())
            {
                await context.ClubSubscriptions.AddRangeAsync(clubSubscription, clubSubscription2);

                await context.ClubMembers.AddAsync(clubMember);

                await context.SaveChangesAsync();
            }

            var request = new UpdateClubMemberRequest()
            {
                ClubId             = clubSubscription2.ClubId,
                ClubSubscriptionId = clubSubscription2.ClubSubscriptionId,
                UserId             = clubMember.UserId
            };

            await _mutations.UpdateClubMemberAsync(request);

            using (var context = _factory.CreateContext())
            {
                var clubMemberDb = context.ClubMembers.FirstOrDefault(clubMember => clubMember.UserId == request.UserId);
                Assert.That(clubMemberDb, Is.Not.Null);
                Assert.That(context.ClubMembers.Count(), Is.EqualTo(1));
            }

            await _publish.Received(1).Publish(Arg.Any <ClubMemberUpdatedEvent>());
        }