public void Put_WhenRatingResourceInvalid_ReturnsWithValidationErrors()
        {
            // Get a list of bids so we can grab the correct id that is stored in
            // the (in)memory db
            var getResources = _client.AuthorizeRequest().GetAsync(APIROUTE).Result;

            getResources.EnsureSuccessStatusCode();

            var resourcesRaw = getResources.Content.ReadAsStringAsync().Result;
            var resources    = JsonConvert.DeserializeObject <IEnumerable <RatingResource> >(resourcesRaw);

            // Verify we have something to look up
            Assert.NotEmpty(resources);

            // The Test
            // Arrange - Grab first one
            var resource = resources.FirstOrDefault();

            var rating = new EditRatingResource
            {
                FitchRating  = "blah",
                MoodysRating = "blah",
                SandPRating  = "blahasd asd asdasd asd asda dasd asdasdddddasdasdad  das asd  too long failure"
            };

            // Act
            var response = _client.AuthorizeRequest().PutAsync(APIROUTE + resource.Id, ClientHelper.EncodeContent(rating)).Result;
            var json     = response.Content.ReadAsStringAsync().Result;

            Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode);
            Assert.Contains("validation errors", json);
        }
        public ValidationResult ValidateResource(EditRatingResource resource)
        {
            var result = new ValidationResult();

            if (resource != null)
            {
                var validator = new RatingValidator();
                var vr        = validator.Validate(resource);

                if (vr.IsValid)
                {
                    result.IsValid = true;
                    return(result);
                }


                if (vr.Errors.Any())
                {
                    foreach (var error in vr.Errors)
                    {
                        result.ErrorMessages.Add(error.PropertyName, error.ErrorMessage);
                    }
                }
            }

            return(result);
        }
        public void Put_ReturnsOk()
        {
            // Get a list of bids so we can grab the correct id that is stored in
            // the (in)memory db
            var getResources = _client.AuthorizeRequest().GetAsync(APIROUTE).Result;

            getResources.EnsureSuccessStatusCode();

            var resourcesRaw = getResources.Content.ReadAsStringAsync().Result;
            var resources    = JsonConvert.DeserializeObject <IEnumerable <RatingResource> >(resourcesRaw);

            // Verify we have something to look up
            Assert.NotEmpty(resources);

            // The Test
            // Arrange - Grab first one
            var resource = resources.FirstOrDefault();

            var rating = new EditRatingResource
            {
                FitchRating  = "blah",
                MoodysRating = "blah",
                SandPRating  = "blah"
            };

            // Act
            var response = _client.AuthorizeRequest().PutAsync(APIROUTE + resource.Id, ClientHelper.EncodeContent(rating)).Result;

            // Assert Ok
            response.EnsureSuccessStatusCode();
        }
예제 #4
0
        public IActionResult Create([FromBody] EditRatingResource rating)
        {
            AppLogger.LogResourceRequest(nameof(Create), base.GetUsernameForRequest());

            try
            {
                var result = _ratingService.ValidateResource(rating);

                if (!result.IsValid)
                {
                    GetErrorsForModelState(result.ErrorMessages);
                }

                if (ModelState.IsValid)
                {
                    _ratingService.Add(rating);

                    return(CreatedAtAction(nameof(Create), rating));
                }

                return(ValidationProblem());
            }
            catch (Exception ex)
            {
                return(BadRequestExceptionHandler(ex, nameof(Create)));
            }
        }
예제 #5
0
        public IActionResult Update(int id, [FromBody] EditRatingResource rating)
        {
            AppLogger.LogResourceRequest(nameof(Update), base.GetUsernameForRequest());

            try
            {
                var result = _ratingService.ValidateResource(rating);

                if (!result.IsValid)
                {
                    GetErrorsForModelState(result.ErrorMessages);
                }

                if (ModelState.IsValid)
                {
                    var checkRating = _ratingService.FindById(id);

                    if (checkRating == null)
                    {
                        return(NotFound(AppConfig.ResourceNotFoundById + id));
                    }

                    _ratingService.Update(id, rating);


                    return(Ok());
                }

                return(ValidationProblem());
            }
            catch (Exception ex)
            {
                return(BadRequestExceptionHandler(ex, nameof(Update)));
            }
        }
        public void Update(int id, EditRatingResource resource)
        {
            var rating = _ratingRepo.FindById(id);

            if (resource != null && rating != null)
            {
                _ratingRepo.Update(id, _mapper.Map(resource, rating));
                _ratingRepo.SaveChanges();
            }
        }
        public RatingResource Add(EditRatingResource resource)
        {
            if (resource == null)
            {
                throw new ArgumentNullException();
            }

            var rating = _mapper.Map <Rating>(resource);

            _ratingRepo.Add(rating);
            _ratingRepo.SaveChanges();

            return(_mapper.Map <RatingResource>(rating));
        }
        public void Put_WhenNull_ReturnsNotFound()
        {
            var rating = new EditRatingResource
            {
                FitchRating  = "blah",
                MoodysRating = "blah",
                SandPRating  = "blah"
            };

            // Act
            var response = _client.AuthorizeRequest().PutAsync(APIROUTE + 99999, ClientHelper.EncodeContent(rating)).Result;

            // Assert
            Assert.Equal(System.Net.HttpStatusCode.NotFound, response.StatusCode);
        }
        public void Post_WhenResourceIsInvalied_ReturnsBadRequestWithValidationErrors()
        {
            var rating = new EditRatingResource
            {
                FitchRating  = "blah this is wayyyyyyy to long !!!!!!!!!! ",
                MoodysRating = "blah",
                SandPRating  = "blah"
            };

            var response = _client.AuthorizeRequest().PostAsync(APIROUTE, ClientHelper.EncodeContent(rating)).Result;
            var json     = response.Content.ReadAsStringAsync().Result;

            Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode);
            Assert.Contains("validation errors", json);
        }
        public void Post_ReturnsOk_WithNewRatingResource()
        {
            var rating = new EditRatingResource
            {
                FitchRating  = "blah",
                MoodysRating = "blah",
                SandPRating  = "blah"
            };

            var response = _client.AuthorizeRequest().PostAsync(APIROUTE, ClientHelper.EncodeContent(rating)).Result;

            response.EnsureSuccessStatusCode();

            var json   = response.Content.ReadAsStringAsync().Result;
            var result = JsonConvert.DeserializeObject <RatingResource>(json);

            Assert.NotNull(result);
            Assert.IsType <RatingResource>(result);
        }