Exemplo n.º 1
0
        public async Task GenerateReport_ShouldReturnOkObjectResult_WhenValidRequest()
        {
            //Arrange
            var request = new MetricsRequestDto
            {
                StartDate = "01/02/2021",
                EndDate   = "01/02/2021",
                Metrics   = new List <string> {
                    "some metric"
                },
                PipelineDto = new PipelineDto
                {
                    Token      = "someToken",
                    Deployment = new List <Deployment>
                    {
                        new Deployment
                        {
                            Id         = "someId",
                            Name       = "someName",
                            Step       = "someStep",
                            Repository = "someRepository",
                        }
                    }
                },
                CodeBaseSettingDto = new CodeBaseSettingDto
                {
                    Token    = "someToken",
                    LeadTime = new List <LeadTime>
                    {
                        new LeadTime
                        {
                            Id         = "someId",
                            Name       = "someName",
                            Step       = "someStep",
                            Repository = "someRepository",
                        }
                    }
                }
            };

            //Act
            var actual = await _controller.GenerateReport(request);

            //Assert
            var result = Assert.IsType <OkObjectResult>(actual);

            Assert.Equal(200, result.StatusCode);
            await _reportingService.Received(1).GenerateReport(Arg.Any <MetricsRequest>());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GenerateReport([FromBody] MetricsRequestDto request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var metricsRequest = _mapper.Map <MetricsRequest>(request);
                var response       = await _reportingService.GenerateReport(metricsRequest);

                return(new OkObjectResult(response));
            }
            catch (UnauthorizedAccessException e)
            {
                return(new UnauthorizedObjectResult(e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }