public void CreateReturnsNewlyCreatedIdeaForSession() { var mockRepo = new Mock<IBrainstormSessionRepository>(); int testSessionId = 123; string testName = "test name"; string testDescription = "test description"; var testSession = GetTestSession(); mockRepo.Setup(r => r.GetById(testSessionId)).Returns(testSession); var controller = new IdeasController(mockRepo.Object); var newIdea = new NewIdeaModel() { Description = testDescription, Name = testName, SessionId = testSessionId }; mockRepo.Setup(r => r.Update(testSession)).Verifiable(); var result = Assert.IsType<HttpOkObjectResult>(controller.Create(newIdea)); var returnSession = Assert.IsType<BrainstormSession>(result.Value); mockRepo.Verify(); Assert.Equal(2, returnSession.Ideas.Count()); Assert.Equal(testName, returnSession.Ideas.LastOrDefault().Name); Assert.Equal(testDescription, returnSession.Ideas.LastOrDefault().Description); }
public async Task Create_ReturnsNewlyCreatedIdeaForSession() { // Arrange int testSessionId = 123; string testName = "test name"; string testDescription = "test description"; var testSession = GetTestSession(); var mockRepo = new Mock<IBrainstormSessionRepository>(); mockRepo.Setup(repo => repo.GetByIdAsync(testSessionId)) .Returns(Task.FromResult(testSession)); var controller = new IdeasController(mockRepo.Object); var newIdea = new NewIdeaModel() { Description = testDescription, Name = testName, SessionId = testSessionId }; mockRepo.Setup(repo => repo.UpdateAsync(testSession)) .Returns(Task.CompletedTask) .Verifiable(); // Act var result = await controller.Create(newIdea); // Assert var okResult = Assert.IsType<OkObjectResult>(result); var returnSession = Assert.IsType<BrainstormSession>(okResult.Value); mockRepo.Verify(); Assert.Equal(2, returnSession.Ideas.Count()); Assert.Equal(testName, returnSession.Ideas.LastOrDefault().Name); Assert.Equal(testDescription, returnSession.Ideas.LastOrDefault().Description); }