public void Put(Guid manageId, ManageQuestionRequest request) { ValidateRequest(request); if (!ModelState.IsValid) { ThrowError(HttpStatusCode.BadRequest, ModelState); } using (var context = _contextFactory.CreateContext()) { Poll poll = PollByManageId(manageId, context); if (String.IsNullOrWhiteSpace(request.Question)) { ThrowError(HttpStatusCode.BadRequest, "Question cannot be null or empty"); } if (poll.Name == request.Question) { return; } _metricHandler.HandleQuestionChangedEvent(request.Question, poll.UUID); poll.Name = request.Question; poll.LastUpdatedUtc = DateTime.UtcNow; context.SaveChanges(); } }
private void ValidateRequest(ManageQuestionRequest request) { if (request == null) { ThrowError(HttpStatusCode.BadRequest, "Question request cannot be null"); } }
public void UnknownManageIdReturnsNotFound() { // Arrange ManageQuestionRequest request = new ManageQuestionRequest { }; // Act _controller.Put(Guid.NewGuid(), request); }
public void EmptyQuestionReturnsBadRequest() { // Arrange ManageQuestionRequest request = new ManageQuestionRequest { Question = "" }; // Act _controller.Put(PollManageGuid, request); }
public void ValidQuestionSetsPollName() { // Arrange ManageQuestionRequest request = new ManageQuestionRequest { Question = "DEF" }; // Act _controller.Put(PollManageGuid, request); // Assert Assert.AreEqual(_existingPoll.Name, "DEF"); }
public void InvalidQuestionDoesNotGenerateMetric() { // Arrange ManageQuestionRequest request = new ManageQuestionRequest { Question = "" }; // Act _controller.Put(PollManageGuid, request); // Assert _metricHandler.Verify(m => m.HandleQuestionChangedEvent(It.IsAny <string>(), It.IsAny <Guid>()), Times.Never()); }
public void ValidQuestionGeneratesMetric() { // Arrange ManageQuestionRequest request = new ManageQuestionRequest { Question = "JKL" }; // Act _controller.Put(PollManageGuid, request); // Assert _metricHandler.Verify(m => m.HandleQuestionChangedEvent("JKL", _existingPoll.UUID), Times.Once()); }