public async Task <IActionResult> GetCollectorValue(Guid id, [FromQuery] string fields, [FromHeader(Name = "Accept")] string mediaType) { if (!TypeHelper.TypeHasProperties <CollectorValueDto>(fields)) { return(BadRequest()); } var retrievedCollectorValue = await _collectorValueService.FindCollectorValueById(id); if (retrievedCollectorValue == null) { return(NotFound()); } var collectorValue = _mapper.Map <CollectorValueDto>(retrievedCollectorValue); var shapedCollectorValue = collectorValue.ShapeData(fields); if (mediaType == "application/json+hateoas") { if (!string.IsNullOrEmpty(fields) && !fields.ToLowerInvariant().Contains("id")) { return(BadRequest("Field parameter 'id' is required")); } var links = CreateCollectorValueLinks(id, fields); var linkedResource = shapedCollectorValue as IDictionary <string, object>; linkedResource.Add("links", links); return(Ok(linkedResource)); } else { return(Ok(shapedCollectorValue)); } }
public async Task FindCollectorValueById_ReturnsCollectorValue_GivenValidId() { //Arrange Guid id = new Guid("5e9cb33b-b12c-4e20-8113-d8e002aeb38d"); //Act var result = await _collectorValueService.FindCollectorValueById(id); //Assert Assert.NotNull(result); Assert.Equal(id, result.Id); Assert.Equal(760, result.G4); }