public void AddJobAsync_AddNewJobToCharacterJobsAndNotifyIt() { const int characterId = 5; var jobId = Guid.NewGuid(); var executionContext = new NaheulbookExecutionContext(); var request = new CharacterAddJobRequest { JobId = jobId }; var character = new Character { Jobs = new List <CharacterJob>(), Id = characterId }; var job = new Job { Id = jobId }; _unitOfWorkFactory.GetUnitOfWork().Characters.GetWithOriginWithJobsAsync(characterId) .Returns(character); _unitOfWorkFactory.GetUnitOfWork().Jobs.GetAsync(jobId) .Returns(job); _unitOfWorkFactory.GetUnitOfWork().When(x => x.SaveChangesAsync()) .Do(_ => { character.Jobs.Should().HaveCount(1); character.Jobs.First().Job.Should().BeSameAs(job); }); _service.AddJobAsync(executionContext, characterId, request); Received.InOrder(() => { _notificationSessionFactory.NotificationSession.NotifyCharacterAddJob(characterId, jobId); _unitOfWorkFactory.GetUnitOfWork().SaveChangesAsync(); _notificationSessionFactory.NotificationSession.Received().CommitAsync(); }); }