Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
 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());
            }