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(); }); }