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); }
public void CreateReturnsBadRequestGivenInvalidModel() { var mockRepo = new Mock<IBrainstormSessionRepository>(); var controller = new IdeasController(mockRepo.Object); controller.ModelState.AddModelError("error","some error"); var result = Assert.IsType<BadRequestObjectResult>(controller.Create(null)); }
public void ForSessionReturnsHttpNotFoundForInvalidSession() { var mockRepo = new Mock<IBrainstormSessionRepository>(); int testSessionId = 123; mockRepo.Setup(r => r.GetById(testSessionId)).Returns((BrainstormSession)null); var controller = new IdeasController(mockRepo.Object); var result = Assert.IsType<HttpNotFoundObjectResult>(controller.ForSession(testSessionId)); }
public void ForSessionReturnsIdeasForSession() { var mockRepo = new Mock<IBrainstormSessionRepository>(); int testSessionId = 123; mockRepo.Setup(r => r.GetById(testSessionId)).Returns(GetTestSession()); var controller = new IdeasController(mockRepo.Object); var result = Assert.IsType<HttpOkObjectResult>(controller.ForSession(testSessionId)); var returnValue = Assert.IsType<List<IdeaDTO>>(result.Value); var idea = returnValue.FirstOrDefault(); Assert.Equal("One", idea.name); }
public async Task Create_ReturnsBadRequest_GivenInvalidModel() { // Arrange & Act var mockRepo = new Mock<IBrainstormSessionRepository>(); var controller = new IdeasController(mockRepo.Object); controller.ModelState.AddModelError("error","some error"); // Act var result = await controller.Create(model: null); // Assert Assert.IsType<BadRequestObjectResult>(result); }
public async Task Create_ReturnsHttpNotFound_ForInvalidSession() { // Arrange int testSessionId = 123; var mockRepo = new Mock<IBrainstormSessionRepository>(); mockRepo.Setup(repo => repo.GetByIdAsync(testSessionId)) .Returns(Task.FromResult((BrainstormSession)null)); var controller = new IdeasController(mockRepo.Object); // Act var result = await controller.Create(new NewIdeaModel()); // Assert Assert.IsType<NotFoundObjectResult>(result); }
public async Task ForSession_ReturnsIdeasForSession() { // Arrange int testSessionId = 123; var mockRepo = new Mock<IBrainstormSessionRepository>(); mockRepo.Setup(repo => repo.GetByIdAsync(testSessionId)).Returns(Task.FromResult(GetTestSession())); var controller = new IdeasController(mockRepo.Object); // Act var result = await controller.ForSession(testSessionId); // Assert var okResult = Assert.IsType<OkObjectResult>(result); var returnValue = Assert.IsType<List<IdeaDTO>>(okResult.Value); var idea = returnValue.FirstOrDefault(); Assert.Equal("One", idea.Name); }