Beispiel #1
0
        /// <summary>
        /// Applies the given changes to the given stream.
        /// </summary>
        public static OsmStreamSource ApplyChanges(this IEnumerable <OsmGeo> source, params OsmChange[] osmChange)
        {
            var filter = new OsmStreamFilterApplyChangeset(osmChange);

            filter.RegisterSource(source);
            return(filter);
        }
Beispiel #2
0
        public void TestCreate()
        {
            var source = new OsmGeo[]
            {
                new Node()
                {
                    Id      = 2,
                    Version = 1
                },
                new Way()
                {
                    Id      = 3,
                    Version = 2
                },
                new Relation()
                {
                    Id      = 3,
                    Version = 2
                }
            };
            var changeset = new OsmChange()
            {
                Create = new OsmGeo[]
                {
                    new Node()
                    {
                        Id      = 1,
                        Version = 1
                    },
                    new Node()
                    {
                        Id      = 3,
                        Version = 1
                    },
                    new Way()
                    {
                        Id      = 2,
                        Version = 1
                    },
                    new Relation()
                    {
                        Id      = 4,
                        Version = 1
                    }
                }
            };

            var filter = new OsmStreamFilterApplyChangeset(changeset);

            filter.RegisterSource(source);

            var result = new List <OsmGeo>(filter);

            Assert.AreEqual(7, result.Count);
            Assert.AreEqual(1, result[0].Id);
            Assert.AreEqual(OsmGeoType.Node, result[0].Type);
            Assert.AreEqual(2, result[1].Id);
            Assert.AreEqual(OsmGeoType.Node, result[1].Type);
            Assert.AreEqual(3, result[2].Id);
            Assert.AreEqual(OsmGeoType.Node, result[2].Type);

            Assert.AreEqual(2, result[3].Id);
            Assert.AreEqual(OsmGeoType.Way, result[3].Type);
            Assert.AreEqual(3, result[4].Id);
            Assert.AreEqual(OsmGeoType.Way, result[4].Type);

            Assert.AreEqual(3, result[5].Id);
            Assert.AreEqual(OsmGeoType.Relation, result[5].Type);
            Assert.AreEqual(4, result[6].Id);
            Assert.AreEqual(OsmGeoType.Relation, result[6].Type);
        }