コード例 #1
0
        public void GivenIsoSpatialRowAndEnumeratedMeterWhenMapThenSpatialRecordContainsMeterValue()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 1
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };
            _isoSpatialRows = new List<ISOSpatialRow> { _isoSpatialRow };

            var meter = new ISOEnumeratedMeter
            {
                Representation = RepresentationInstanceList.dtSectionControlMasterState.ToModelRepresentation(),
                ValueCodes = new List<int> { 1, 2, 3 },
                DeviceElementUseId = 1,
                GetEnumeratedValue = (sv, im) => new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 3 } },
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0",
                Source = UniqueIdMapper.IsoSource
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var result = Map();
            var meterValue = result.First().GetMeterValue(meter) as EnumeratedValue;

            Assert.AreEqual(3, meterValue.Value.Code);
        }
コード例 #2
0
        public void GivenTlgWhenMapThenIdIsMapped()
        {
            var uniqueId = new UniqueId();
            _uniqueIdMapperMock.Setup(x => x.Map(_tlg.A)).Returns(uniqueId);

            var result = MapSingle();

            Assert.Contains(uniqueId, result.Id.UniqueIds);
        }
コード例 #3
0
ファイル: MeterMapperTest.cs プロジェクト: ADAPT/ISOv4Plugin
        public void GivenDlvWhenMapThenStoresOrderInMeterCompoundId()
        {
            var dlv1 = new DLV { A = "1" };
            var dlv2 = new DLV { A = "7" };
            _tim.Items = new List<DLV> { dlv1, dlv2 }.ToArray();

            var uniqueId1 = new UniqueId();
            _uniqueIdMapperMock.Setup(x => x.Map("DLV0")).Returns(uniqueId1);

            var uniqueId2 = new UniqueId();
            _uniqueIdMapperMock.Setup(x => x.Map("DLV1")).Returns(uniqueId2);

            var result = Map();

            Assert.Contains(uniqueId1, result[0].Id.UniqueIds);
            Assert.Contains(uniqueId2, result[1].Id.UniqueIds);
        }
コード例 #4
0
        private Field AddClientFarmField(Catalog catalog)
        {
            var grower = new Grower
            {   // Note that names/descriptions are limited to 20 characters. Longer names may be truncated by the plugin.
                // This limit applies to all setup objects.
                Name = "Client"
            };

            catalog.Growers.Add(grower);

            var farm = new Farm
            {
                Description = "Farm",
                // ReferenceId is a temporary numeric Id that is auto-generated by the ADAPT framework.
                GrowerId = grower.Id.ReferenceId
            };

            catalog.Farms.Add(farm);

            var field = new Field
            {
                Description = "Field",
                FarmId      = farm.Id.ReferenceId
            };
            // While ReferenceId is a temporary numeric id, you can also specify your own Id's.
            // A UniqueId supports UUID, long, string, and URI id's. Where possible the Deere plugins will retain the provided id.
            var fieldId = new UniqueId
            {
                Id     = "d3b70893-5233-4e20-9f6b-6980a37f38c5",
                IdType = IdTypeEnum.UUID
            };

            field.Id.UniqueIds.Add(fieldId);
            catalog.Fields.Add(field);

            return(field);
        }
コード例 #5
0
ファイル: MeterMapperTest.cs プロジェクト: ADAPT/ISOv4Plugin
        public void GivenEnumeratedDlvWhenMapThenEnumerateMeterHasId()
        {
            const int ddiValue = 131;
            var dlv = new DLV { A = ddiValue.ToString("x4") };
            _tim.Items = new List<DLV> { dlv }.ToArray();

            var expected = new ISOEnumeratedMeter { TriggerId = 8675309 };
            var meterCreator = new Mock<IEnumeratedMeterCreator>();
            meterCreator.Setup(m => m.CreateMeters(It.IsAny<IEnumerable<ISOSpatialRow>>())).Returns(new List<ISOEnumeratedMeter> {expected});

            _enumeratorMeterFactoryMock.Setup(m => m.GetMeterCreator(ddiValue)).Returns(meterCreator.Object);
            var uniqueId = new UniqueId();
            _uniqueIdMapperMock.Setup(x => x.Map("DLV0")).Returns(uniqueId);

            var result = MapSingle();

            Assert.AreSame(expected, result);
            Assert.Contains(uniqueId, result.Id.UniqueIds);
        }
コード例 #6
0
        public void GivenTlgWithIdsInLinkListThenIdsAreAdded()
        {
            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.UUID,
                Source = "source1",
                Id = Guid.NewGuid().ToString(),
                SourceType = IdSourceTypeEnum.GLN
            };
            _linkedIds.Add(_tlg.A, new List<UniqueId>{ uniqueId });

            var result = MapSingle();

            Assert.Contains(uniqueId, result.Id.UniqueIds);
        }
コード例 #7
0
        public void GivenIsoSpatialRowAndMeterWhenMapThenSpatialRecordContainsMeterValue()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };
            _isoSpatialRows.Add(_isoSpatialRow);

            WorkingData meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0",
                Source = UniqueIdMapper.IsoSource
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var result = Map();
            var meterValue = result.First().GetMeterValue(meter) as NumericRepresentationValue;

            Assert.AreEqual(12.3, meterValue.Value.Value);
        }
コード例 #8
0
        public void GivenIsoSpatialRowWithoutMeterWhenMapThenInterpolatorIsCalled()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };

            var isoSpatialRow2 = new ISOSpatialRow { SpatialValues = new List<SpatialValue>() };

            _isoSpatialRows = new List<ISOSpatialRow> {_isoSpatialRow, isoSpatialRow2};

            var meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0"
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            Map().ToList();
            _spatialValueInterpolator.Verify(s => s.Interpolate(It.IsAny<WorkingData>()));
        }
コード例 #9
0
        public void GivenIsoSpatialRowsWithoutNumericMeterOnSecondWhenMapThenSecondValueIsInterpolator()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };

            var isoSpatialRow2 = new ISOSpatialRow { SpatialValues = new List<SpatialValue>() };

            _isoSpatialRows = new List<ISOSpatialRow> {_isoSpatialRow, isoSpatialRow2};

            var meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0"
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var numericRepresentation = new NumericRepresentationValue(meter.Representation as NumericRepresentation,
                    meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, 2.3));

            _spatialValueInterpolator.Setup(s => s.Interpolate(meter)).Returns(numericRepresentation);

            var result = Map().ToList();

            Assert.AreEqual(numericRepresentation, result[1].GetMeterValue(meter) as NumericRepresentationValue);
        }
コード例 #10
0
        public void GivenIsoSpatialRowsWithoutEnumeratedMeterOnSecondWhenMapThenSecondValueIsInterpolator()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 1
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };
            var isoSpatialRow2 = new ISOSpatialRow {SpatialValues = new List<SpatialValue>()};

            _isoSpatialRows = new List<ISOSpatialRow> { _isoSpatialRow, isoSpatialRow2 };

            var meter = new ISOEnumeratedMeter
            {
                Representation = RepresentationInstanceList.dtSectionControlMasterState.ToModelRepresentation(),
                ValueCodes = new List<int> { 1, 2, 3 },
                DeviceElementUseId = 1,
                GetEnumeratedValue = (sv, im) => new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 3 } }
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0"
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var enumeratedRepresentation = new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 3 } };
            _spatialValueInterpolator.Setup(s => s.Interpolate(meter)).Returns(enumeratedRepresentation);

            var result = Map().ToList();

            Assert.AreEqual(enumeratedRepresentation, result[1].GetMeterValue(meter) as EnumeratedValue);
        }