public void WHEN_Convert_GIVEN_Valid_Dto_THEN_Get_Valid_Result_With_All_Links()
        {
            var uniqueIdFactory = SampleObjectsIdFactory.Instance;
            var growerDto       = new GrowerDto {
                Uid = Guid.NewGuid(), Name = "Test"
            };

            var converter = new GrowerDtoConverter(uniqueIdFactory);
            var grower    = converter.Convert(growerDto);

            Assert.Equal(growerDto.Uid.ToString(), grower.Object.Id.UniqueIds.First().Id);
            Assert.Equal(growerDto.Name, grower.Object.Name);

            var selfLink = grower.Links.Single(l => l.Rel == Relationships.Self);

            Assert.Equal($"/Growers/{uniqueIdFactory.UniqueIdSource}/{growerDto.Uid}", selfLink.Link);
            Assert.Equal(selfLink.Id.ReferenceId, grower.Object.Id.ReferenceId);

            var farmsLink = grower.Links.Single(l => l.Rel == typeof(Farm).ListRel());

            Assert.Equal($"/Growers/{uniqueIdFactory.UniqueIdSource}/{growerDto.Uid}/Farms", farmsLink.Link);

            var fieldsLink = grower.Links.Single(l => l.Rel == typeof(Field).ListRel());

            Assert.Equal($"/Growers/{uniqueIdFactory.UniqueIdSource}/{growerDto.Uid}/Fields", fieldsLink.Link);
        }
Ejemplo n.º 2
0
        public ModelEnvelope <Grower> Convert(GrowerDto pmGrower)
        {
            var grower = new Grower()
            {
                Name = pmGrower.Name
            };

            var growerCompoundId = grower.Id;
            var growerUniqueId   = _uniqueIdFactory.CreateGuid(pmGrower.Uid);

            growerCompoundId.UniqueIds.Add(growerUniqueId);

            var growerLink = new ReferenceLink
            {
                Id   = growerCompoundId,
                Rel  = Relationships.Self,
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}",
                Type = "get"
            };
            var farmsLink = new ReferenceLink
            {
                Rel  = typeof(Farm).ListRel(),
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}/Farms"
            };
            var fieldsLink = new ReferenceLink
            {
                Rel  = typeof(Field).ListRel(),
                Link = $"/Growers/{growerUniqueId.Source}/{growerUniqueId.Id}/Fields"
            };

            grower.Id.UniqueIds.Add(growerUniqueId);

            var growerEnvelope = new ModelEnvelope <Grower>(grower);

            growerEnvelope.Links.Add(growerLink);
            growerEnvelope.Links.Add(farmsLink);
            growerEnvelope.Links.Add(fieldsLink);

            return(growerEnvelope);
        }