public async Task CreateMonsterAsync_ShouldCreateNewEntryInDatabase_AndLinkItToGroup() { const int groupId = 42; var request = CreateRequest(); var executionContext = new NaheulbookExecutionContext(); var group = new Group { Id = groupId }; _unitOfWorkFactory.GetUnitOfWork().Groups.GetAsync(groupId) .Returns(group); _jsonUtil.Serialize(request.Data) .Returns("some-json-data"); _jsonUtil.Serialize(request.Modifiers) .Returns("some-json-modifiers"); var actualMonster = await _service.CreateMonsterAsync(executionContext, groupId, request); Received.InOrder(() => { _activeStatsModifierUtil.InitializeModifierIds(request.Modifiers); _unitOfWorkFactory.GetUnitOfWork().Monsters.Add(actualMonster); _unitOfWorkFactory.GetUnitOfWork().SaveChangesAsync(); }); actualMonster.Should().BeEquivalentTo(new Monster { Name = "some-monster-name", Data = "some-json-data", Modifiers = "some-json-modifiers", Group = group }); }