Beispiel #1
0
        public async Task AcceptInviteAsync_ShouldDeleteInvitesFromDatabase_AndChangeCharacterGroupId()
        {
            const int groupId          = 42;
            const int characterId      = 24;
            var       character        = new Character();
            var       executionContext = new NaheulbookExecutionContext();
            var       groupInvite      = new GroupInvite {
                GroupId = groupId, Character = character
            };
            var otherGroupInvite = new GroupInvite {
                GroupId = groupId, Character = character
            };
            var groupInvites = new List <GroupInvite> {
                groupInvite, otherGroupInvite
            };

            _unitOfWorkFactory.GetUnitOfWork().GroupInvites.GetByCharacterIdAndGroupIdWithGroupWithCharacterAsync(groupId, characterId)
            .Returns(groupInvite);
            _unitOfWorkFactory.GetUnitOfWork().GroupInvites.GetInvitesByCharacterIdAsync(characterId)
            .Returns(groupInvites);
            _unitOfWorkFactory.GetUnitOfWork().When(x => x.SaveChangesAsync())
            .Do(_ => character.GroupId.Should().Be(groupId));

            await _service.AcceptInviteAsync(executionContext, groupId, characterId);

            Received.InOrder(() =>
            {
                _unitOfWorkFactory.GetUnitOfWork().GroupInvites.RemoveRange(groupInvites);
                _unitOfWorkFactory.GetUnitOfWork().SaveChangesAsync();
            });
        }