public async Task Add_should_call_repository_and_return_createdAtAction() { // given var pageRequest = _fixture.Create <PageRequest>(); int autoIncrementedId = 99; _pageRepositoryMock .AddNewPageAsync(Arg.Any <Page>()) .Returns(c => { var page = c.Arg <Page>(); // the repository returns a new id (autoincremented) return(Task.FromResult(new Page() { Id = autoIncrementedId, Title = page.Title })); }); // when ActionResult <PageResponse> actionResult = await _pagesController.Add(pageRequest); // then actionResult.ShouldBeCreatedAtActionResult(); PageResponse pageResponse = actionResult.CreatedAtActionResultValue(); pageResponse.ShouldNotBeNull("ActionResult's ViewModel was null"); pageResponse.Id.ShouldBe(autoIncrementedId); pageResponse.Title.ShouldBe(pageRequest.Title); }