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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }