public void WHEN_Convert_GIVEN_Valid_Dto_THEN_Get_Valid_Result_With_All_Links() { var uniqueIdFactory = SampleObjectsIdFactory.Instance; var fieldDto = new FieldDto { Uid = Guid.NewGuid(), FarmUid = Guid.NewGuid(), GrowerUid = Guid.NewGuid(), Name = "Test" }; var converter = new FieldDtoConverter(uniqueIdFactory); var field = converter.Convert(fieldDto); Assert.Equal(fieldDto.Uid.ToString(), field.Object.Id.UniqueIds.First().Id); Assert.Equal(fieldDto.Name, field.Object.Description); var selfLink = field.Links.Single(l => l.Rel == Relationships.Self); Assert.Equal($"/Fields/{uniqueIdFactory.UniqueIdSource}/{fieldDto.Uid}", selfLink.Link); Assert.Equal(selfLink.Id.ReferenceId, field.Object.Id.ReferenceId); var growerLink = field.Links.Single(l => l.Rel == typeof(Grower).ObjectRel()); Assert.Equal($"/Growers/{uniqueIdFactory.UniqueIdSource}/{fieldDto.GrowerUid}", growerLink.Link); var farmLink = field.Links.Single(l => l.Rel == typeof(Farm).ObjectRel()); Assert.Equal($"/Farms/{uniqueIdFactory.UniqueIdSource}/{fieldDto.FarmUid}", farmLink.Link); var cropZoneLink = field.Links.Single(l => l.Rel == typeof(CropZone).ListRel()); Assert.Equal($"/Fields/{uniqueIdFactory.UniqueIdSource}/{fieldDto.Uid}/CropZones", cropZoneLink.Link); var boundaryLink = field.Links.Single(l => l.Rel == typeof(FieldBoundary).ListRel()); Assert.Equal($"/Fields/{uniqueIdFactory.UniqueIdSource}/{fieldDto.Uid}/FieldBoundaries", boundaryLink.Link); }
public ModelEnvelope <Field> Get(string source, string id) { SampleObjectsIdFactory.ValidateSource(source); var dto = SampleRepository.Instance.Fields.Single(f => f.Uid == new Guid(id)); var converter = new FieldDtoConverter(SampleObjectsIdFactory.Instance); return(converter.Convert(dto)); }
public IReadOnlyCollection <ModelEnvelope <Field> > GetByFarm(string source, string id) { SampleObjectsIdFactory.ValidateSource(source); var converter = new FieldDtoConverter(SampleObjectsIdFactory.Instance); var list = new List <ModelEnvelope <Field> >(); foreach (var dto in SampleRepository.Instance.Fields.Where(f => f.FarmUid == new Guid(id))) { var envelope = converter.Convert(dto); list.Add(envelope); } return(list); }