Exemple #1
0
        public void TestSTEndPoint()
        {
            using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
            {
                const string Wkt1 = "LINESTRING(1 1, 2 2, 3 3)";
                db.TestGeometries
                .Value(g => g.Id, 1)
                .Value(g => g.Geometry, () => GeometryInput.STGeomFromText(Wkt1))
                .Insert();

                const string Wkt2 = "POINT(1 1)";
                db.TestGeometries
                .Value(g => g.Id, 2)
                .Value(g => g.Geometry, () => GeometryInput.STGeomFromText(Wkt2))
                .Insert();

                var endPoint1 = db.TestGeometries
                                .Where(g => g.Id == 1)
                                .Select(g => g.Geometry.STEndPoint().STAsText())
                                .Single();
                Assert.AreEqual("POINT(3 3)", endPoint1);

                var endPoint2 = db.TestGeometries
                                .Where(g => g.Id == 2)
                                .Select(g => g.Geometry.STEndPoint())
                                .Single();
                Assert.IsNull(endPoint2);

                Assert.IsNull(db.Select(() => GeometryAccessors.STEndPoint((NTSG)null)));

                Assert.IsNotNull(db.Select(() => GeometryAccessors.STEndPoint(Wkt1)));
                Assert.AreEqual(
                    "POINT(3 3)",
                    db.Select(() => GeometryAccessors.STEndPoint(Wkt1).STAsText()));
                Assert.IsNull(db.Select(() => GeometryAccessors.STEndPoint(Wkt2)));
            }
        }