Exemplo n.º 1
0
        public async Task <IActionResult> ValidateGherkin(HttpRequest request)
        {
            string json = await request.GetRawBodyStringAsync();

            ValidateGherkinRequestModel model = JsonConvert.DeserializeObject <ValidateGherkinRequestModel>(json);

            if (model == null)
            {
                _logger.Error("Null model was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty specification id provided"));
            }

            if (string.IsNullOrWhiteSpace(model.SpecificationId))
            {
                _logger.Error("No specification id was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty specification id provided"));
            }

            if (string.IsNullOrWhiteSpace(model.Gherkin))
            {
                _logger.Error("Null or empty gherkin was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty gherkin name provided"));
            }

            BuildProject buildProject = await _buildProjectRepositoryPolicy.ExecuteAsync(() => _buildProjectRepository.GetBuildProjectBySpecificationId(model.SpecificationId));

            if (buildProject == null || buildProject.Build == null)
            {
                _logger.Error($"Failed to find a valid build project for specification id: {model.SpecificationId}");

                return(new StatusCodeResult(412));
            }

            GherkinParseResult parseResult = await _gherkinParser.Parse(model.SpecificationId, model.Gherkin, buildProject);

            if (parseResult.HasErrors)
            {
                _logger.Information($"Gherkin parser failed validation with ");
            }

            return(new OkObjectResult(parseResult.Errors));
        }
        public async Task <IActionResult> ValidateGherkin(ValidateGherkinRequestModel model)
        {
            if (model == null)
            {
                _logger.Error("Null model was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty specification id provided"));
            }

            if (string.IsNullOrWhiteSpace(model.SpecificationId))
            {
                _logger.Error("No specification id was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty specification id provided"));
            }

            if (string.IsNullOrWhiteSpace(model.Gherkin))
            {
                _logger.Error("Null or empty gherkin was provided to ValidateGherkin");
                return(new BadRequestObjectResult("Null or empty gherkin name provided"));
            }

            BuildProject buildProject = _mapper.Map <BuildProject>(await _calcsApiClientPolicy.ExecuteAsync(() => _calcsApiClient.GetBuildProjectBySpecificationId(model.SpecificationId)));

            if (buildProject == null || buildProject.Build == null)
            {
                _logger.Error($"Failed to find a valid build project for specification id: {model.SpecificationId}");

                return(new StatusCodeResult((int)HttpStatusCode.PreconditionFailed));
            }

            GherkinParseResult parseResult = await _gherkinParser.Parse(model.SpecificationId, model.Gherkin, buildProject);

            if (parseResult.HasErrors)
            {
                _logger.Information($"Gherkin parser failed validation with ");
            }

            return(new OkObjectResult(parseResult.Errors));
        }
Exemplo n.º 3
0
 public Task <IActionResult> RunValidateGherkin([FromBody] ValidateGherkinRequestModel validateGherkinRequestModel)
 {
     return(_gherkinParserService.ValidateGherkin(validateGherkinRequestModel));
 }