Example #1
0
        public void PostMustReturnOk()
        {
            //ARRANGE
            var dna = new string[]
            {
                "ATGCGA", "CAGTGC", "TTATGT", "AGAAGG", "CCCCTA", "TCACTG"
            };

            var dnaRequest = new DnaRequest
            {
                Dna = dna
            };

            var isMutant = true;

            var mockDnaEvaluator = _autoMoqer.GetMock <IDnaEvaluatorService>();

            mockDnaEvaluator.Setup(x => x.Evaluate(dnaRequest.Dna))
            .Returns(Task.FromResult(isMutant));

            //ACT
            var result       = _mutantController.Post(dnaRequest).Result;
            var actionResult = (OkResult)result;

            //ASSERT
            Assert.Equal(actionResult.StatusCode, (int)HttpStatusCode.OK);
        }
Example #2
0
        public async void CuandoElSeProduceUnArgumentExceptionRetornaBadRequest()
        {
            var dnaEvaluatorServiceMock = new Mock <IDnaEvaluatorService>();

            dnaEvaluatorServiceMock.Setup(e => e.EvaluateDna(It.IsAny <string[]>())).ThrowsAsync(new ArgumentException());

            var controller = new MutantController(dnaEvaluatorServiceMock.Object);

            var response = await controller.Post(new DnaDto());

            Assert.IsType <BadRequestObjectResult>(response);
        }
Example #3
0
        private async void ValidarStatusCodeEnRespuestaDeIsMutant(bool isMutant, int statusCode)
        {
            var dnaEvaluatorServiceMock = new Mock <IDnaEvaluatorService>();

            dnaEvaluatorServiceMock.Setup(e => e.EvaluateDna(It.IsAny <string[]>())).ReturnsAsync(isMutant);

            var controller = new MutantController(dnaEvaluatorServiceMock.Object);

            var response = await controller.Post(new DnaDto());

            Assert.IsAssignableFrom <StatusCodeResult>(response);
            Assert.Equal(((StatusCodeResult)response).StatusCode, statusCode);
        }
Example #4
0
        public void ShouldReturn500WhenExceptionOcursOnService()
        {
            Mock <IQuantityAnalysisResult> quantityAnalysisResult = new Mock <IQuantityAnalysisResult>();

            quantityAnalysisResult.Setup(m => m.Result).Returns(false);
            Mock <IDNAAnalyzerService> dnaAnalyzerService = new Mock <IDNAAnalyzerService>();

            dnaAnalyzerService.Setup(m => m.AnalyzeMutant(It.IsAny <IDNA>())).Throws(new System.Exception());

            Mock <IDNAFactory> dnaFactory = new Mock <IDNAFactory>();
            MutantController   controller = new MutantController(dnaAnalyzerService.Object, dnaFactory.Object);

            controller.Request = new HttpRequestMessage();
            controller.Request.SetConfiguration(new HttpConfiguration());
            var responseMessage = controller.Post(new Request.MutantRequest()
            {
                Dna = new string[] { }
            });

            Assert.AreEqual(responseMessage.Result.StatusCode, System.Net.HttpStatusCode.InternalServerError);
        }
Example #5
0
        public void ShouldReturn403WhenAnalyzeMutantReturnsPositiveResult()
        {
            Mock <IQuantityAnalysisResult> quantityAnalysisResult = new Mock <IQuantityAnalysisResult>();

            quantityAnalysisResult.Setup(m => m.Result).Returns(false);
            Mock <IDNAAnalyzerService> dnaAnalyzerService = new Mock <IDNAAnalyzerService>();
            var quantityAnalysisResultTask = Task.FromResult(quantityAnalysisResult.Object);

            dnaAnalyzerService.Setup(m => m.AnalyzeMutant(It.IsAny <IDNA>())).Returns(quantityAnalysisResultTask);

            Mock <IDNAFactory> dnaFactory = new Mock <IDNAFactory>();
            MutantController   controller = new MutantController(dnaAnalyzerService.Object, dnaFactory.Object);

            controller.Request = new HttpRequestMessage();
            controller.Request.SetConfiguration(new HttpConfiguration());
            var responseMessage = controller.Post(new Request.MutantRequest()
            {
                Dna = new string[] { }
            });

            Assert.AreEqual(responseMessage.Result.StatusCode, System.Net.HttpStatusCode.Forbidden);
        }