Skip to content

Commit 1224f38

Browse files
committed
Unit tests code simplifying and cleanup
1 parent f150f9e commit 1224f38

File tree

8 files changed

+83
-245
lines changed

8 files changed

+83
-245
lines changed

LinqToDBPostGisNetTopologySuite.Tests/Entities/TestGeometryEntity.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@ namespace LinqToDBPostGisNetTopologySuite.Tests.Entities
77
[Table("test_geometry", Schema = "public")]
88
public class TestGeometryEntity
99
{
10+
/// <summary>
11+
/// Identifier (Primary Key)
12+
/// </summary>
1013
[Column("id"), PrimaryKey, NotNull]
1114
public int Id { get; set; }
1215

16+
/// <summary>
17+
/// Geometry data
18+
/// </summary>
1319
[Column("geom"), Nullable]
1420
public NTSG Geometry { get; set; }
1521

LinqToDBPostGisNetTopologySuite.Tests/GeometryAccessorsTests.cs

Lines changed: 34 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
using LinqToDB;
44
using NUnit.Framework;
5-
using NTSG = NetTopologySuite.Geometries;
6-
7-
using LinqToDBPostGisNetTopologySuite.Tests.Entities;
85

96
namespace LinqToDBPostGisNetTopologySuite.Tests
107
{
@@ -25,13 +22,12 @@ public void TestGeometryType()
2522
{
2623
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
2724
{
28-
// TODO: shared method
2925
const string wkt = "LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)";
30-
db.Insert(new TestGeometryEntity(1, null));
31-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
32-
db.Update(new TestGeometryEntity(1, geometry));
26+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
27+
28+
var geometryType = db.TestGeometries.Select(g => g.Geometry.GeometryType()).Single();
3329

34-
Assert.AreEqual("LINESTRING", db.TestGeometries.Select(g => g.Geometry.GeometryType()).Single());
30+
Assert.AreEqual("LINESTRING", geometryType);
3531
}
3632
}
3733

@@ -40,27 +36,15 @@ public void TestSTBoundary()
4036
{
4137
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
4238
{
43-
// TODO: shared method
4439
const string wkt1 = "LINESTRING(100 150,50 60, 70 80, 160 170)";
45-
db.Insert(new TestGeometryEntity(1, null));
46-
var geometry1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
47-
db.Update(new TestGeometryEntity(1, geometry1));
48-
40+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
4941
const string wkt2 = "POLYGON (( 10 130, 50 190, 110 190, 140 150, 150 80, 100 10, 20 40, 10 130), (70 40, 100 50, 120 80, 80 110, 50 90, 70 40))";
50-
db.Insert(new TestGeometryEntity(2, null));
51-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
52-
db.Update(new TestGeometryEntity(2, geometry2));
53-
54-
var boundary1 = db.TestGeometries
55-
.Where(g => g.Id == 1)
56-
.Select(g => g.Geometry.STBoundary().STAsText())
57-
.Single();
42+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
43+
44+
var boundary1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STBoundary().STAsText()).Single();
5845
Assert.AreEqual("MULTIPOINT(100 150,160 170)", boundary1);
5946

60-
var boundary2 = db.TestGeometries
61-
.Where(g => g.Id == 2)
62-
.Select(g => g.Geometry.STBoundary().STAsText())
63-
.Single();
47+
var boundary2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STBoundary().STAsText()).Single();
6448
Assert.AreEqual("MULTILINESTRING((10 130,50 190,110 190,140 150,150 80,100 10,20 40,10 130),(70 40,100 50,120 80,80 110,50 90,70 40))", boundary2);
6549
}
6650
}
@@ -70,15 +54,10 @@ public void TestSTDimension()
7054
{
7155
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
7256
{
73-
// TODO: shared method
7457
const string wkt = "GEOMETRYCOLLECTION(LINESTRING(1 1,0 0),POINT(0 0))";
75-
db.Insert(new TestGeometryEntity(1, null));
76-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
77-
db.Update(new TestGeometryEntity(1, geometry));
58+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
7859

79-
var dimension = db.TestGeometries
80-
.Select(g => g.Geometry.STDimension())
81-
.Single();
60+
var dimension = db.TestGeometries.Select(g => g.Geometry.STDimension()).Single();
8261

8362
Assert.AreEqual(1, dimension);
8463
}
@@ -89,15 +68,10 @@ public void TestSTEndPoint()
8968
{
9069
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
9170
{
92-
// TODO: shared method
9371
const string wkt = "LINESTRING(1 1, 2 2, 3 3)";
94-
db.Insert(new TestGeometryEntity(1, null));
95-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
96-
db.Update(new TestGeometryEntity(1, geometry));
72+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
9773

98-
var endPoint = db.TestGeometries
99-
.Select(g => g.Geometry.STEndPoint().STAsText())
100-
.Single();
74+
var endPoint = db.TestGeometries.Select(g => g.Geometry.STEndPoint().STAsText()).Single();
10175

10276
Assert.AreEqual("POINT(3 3)", endPoint);
10377
}
@@ -108,15 +82,10 @@ public void TestSTEnvelope()
10882
{
10983
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
11084
{
111-
// TODO: shared method
11285
const string wkt = "LINESTRING(0 0, 1 3)";
113-
db.Insert(new TestGeometryEntity(1, null));
114-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
115-
db.Update(new TestGeometryEntity(1, geometry));
86+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
11687

117-
var envelope = db.TestGeometries
118-
.Select(g => g.Geometry.STEnvelope().STAsText())
119-
.Single();
88+
var envelope = db.TestGeometries.Select(g => g.Geometry.STEnvelope().STAsText()).Single();
12089

12190
Assert.AreEqual("POLYGON((0 0,0 3,1 3,1 0,0 0))", envelope);
12291
}
@@ -127,18 +96,11 @@ public void TestSTIsEmpty()
12796
{
12897
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
12998
{
130-
// TODO: shared method
13199
const string wkt1 = "GEOMETRYCOLLECTION EMPTY";
132-
db.Insert(new TestGeometryEntity(1, null));
133-
var geometry1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
134-
db.Update(new TestGeometryEntity(1, geometry1));
135-
100+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
136101
const string wkt2 = "POLYGON((1 2, 3 4, 5 6, 1 2))";
137-
db.Insert(new TestGeometryEntity(2, null));
138-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
139-
db.Update(new TestGeometryEntity(2, geometry2));
140-
141-
db.Insert(new TestGeometryEntity(3, null));
102+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
103+
db.TestGeometries.Value(g => g.Id, 3).Value(p => p.Geometry, () => null).Insert();
142104

143105
Assert.IsTrue(db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STIsEmpty()).Single());
144106
Assert.IsFalse(db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STIsEmpty()).Single());
@@ -151,16 +113,10 @@ public void TestSTIsValid()
151113
{
152114
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
153115
{
154-
// TODO: shared method
155116
const string wkt1 = "LINESTRING(0 0, 1 1)";
156-
db.Insert(new TestGeometryEntity(1, null));
157-
var geometry1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
158-
db.Update(new TestGeometryEntity(1, geometry1));
159-
117+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
160118
const string wkt2 = "POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))";
161-
db.Insert(new TestGeometryEntity(2, null));
162-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
163-
db.Update(new TestGeometryEntity(2, geometry2));
119+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
164120

165121
Assert.IsTrue(db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STIsValid()).Single());
166122
Assert.IsFalse(db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STIsValid()).Single());
@@ -172,28 +128,16 @@ public void TestSTNumGeometries()
172128
{
173129
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
174130
{
175-
// TODO: shared method
176131
const string wkt1 = "LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)";
177-
db.Insert(new TestGeometryEntity(1, null));
178-
var geometry1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
179-
db.Update(new TestGeometryEntity(1, geometry1));
180-
132+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
181133
const string wkt2 = "GEOMETRYCOLLECTION(MULTIPOINT(-2 3 , -2 2), LINESTRING(5 5, 10 10), POLYGON((-7 4.2, -7.1 5, -7.1 4.3, -7 4.2)))";
182-
db.Insert(new TestGeometryEntity(2, null));
183-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
184-
db.Update(new TestGeometryEntity(2, geometry2));
185-
186-
var num1 = db.TestGeometries
187-
.Where(g => g.Id == 1)
188-
.Select(g => g.Geometry.STNumGeometries())
189-
.Single();
190-
Assert.AreEqual(1, num1);
191-
192-
var num2 = db.TestGeometries
193-
.Where(g => g.Id == 2)
194-
.Select(g => g.Geometry.STNumGeometries())
195-
.Single();
196-
Assert.AreEqual(3, num2);
134+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
135+
136+
var numGeometries1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STNumGeometries()).Single();
137+
Assert.AreEqual(1, numGeometries1);
138+
139+
var numGeometries2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STNumGeometries()).Single();
140+
Assert.AreEqual(3, numGeometries2);
197141
}
198142
}
199143

@@ -202,13 +146,12 @@ public void TestSTNumPoints()
202146
{
203147
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
204148
{
205-
// TODO: shared method
206149
const string wkt = "LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)";
207-
db.Insert(new TestGeometryEntity(1, null));
208-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
209-
db.Update(new TestGeometryEntity(1, geometry));
150+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
151+
152+
var numPoints = db.TestGeometries.Select(g => g.Geometry.STNumPoints()).Single();
210153

211-
Assert.AreEqual(4, db.TestGeometries.Select(g => g.Geometry.STNumPoints()).Single());
154+
Assert.AreEqual(4, numPoints);
212155
}
213156
}
214157

@@ -217,16 +160,10 @@ public void TestSTXYZM()
217160
{
218161
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
219162
{
220-
// TODO: shared method
221163
const string wkt1 = "POINT(1 2 3 4)";
222-
db.Insert(new TestGeometryEntity(1, null));
223-
var geometry1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
224-
db.Update(new TestGeometryEntity(1, geometry1));
225-
164+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
226165
const string wkt2 = "POINT(1 2)";
227-
db.Insert(new TestGeometryEntity(2, null));
228-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
229-
db.Update(new TestGeometryEntity(2, geometry2));
166+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
230167

231168
var query1 = db.TestGeometries.Where(g => g.Id == 1);
232169
Assert.AreEqual(1, query1.Select(g => g.Geometry.STX()).Single());

LinqToDBPostGisNetTopologySuite.Tests/GeometryInputTests.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
using System;
2-
using System.Linq;
1+
using System.Linq;
32

43
using LinqToDB;
54
using NUnit.Framework;
6-
using NTSG = NetTopologySuite.Geometries;
7-
8-
using LinqToDBPostGisNetTopologySuite.Tests.Entities;
95

106
namespace LinqToDBPostGisNetTopologySuite.Tests
117
{
@@ -27,9 +23,7 @@ public void TestSTGeomFromText()
2723
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
2824
{
2925
const string wkt1 = "POINT(100 250)";
30-
db.Insert(new TestGeometryEntity(1, null));
31-
var geometry1 = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
32-
db.Update(new TestGeometryEntity(1, geometry1));
26+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
3327

3428
var srid1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STSrId()).Single();
3529
Assert.AreEqual(0, srid1);
@@ -38,9 +32,7 @@ public void TestSTGeomFromText()
3832
Assert.AreEqual("POINT(100 250)", ewkt1);
3933

4034
const string wkt2 = "POINT(100 250)";
41-
db.Insert(new TestGeometryEntity(2, null));
42-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2, SRID3857)).Single();
43-
db.Update(new TestGeometryEntity(2, geometry2));
35+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2, SRID3857)).Insert();
4436

4537
var srid2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STSrId()).Single();
4638
Assert.AreEqual(SRID3857, srid2);

LinqToDBPostGisNetTopologySuite.Tests/GeometryOutputTests.cs

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33

44
using LinqToDB;
55
using NUnit.Framework;
6-
using NTSG = NetTopologySuite.Geometries;
7-
8-
using LinqToDBPostGisNetTopologySuite.Tests.Entities;
96

107
namespace LinqToDBPostGisNetTopologySuite.Tests
118
{
@@ -27,14 +24,12 @@ public void TestSTAsBinary()
2724
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
2825
{
2926
const string wkt = "POINT(2.0 4.0)";
30-
db.Insert(new TestGeometryEntity(1, null));
31-
var geometry = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt)).Single();
32-
db.Update(new TestGeometryEntity(1, geometry));
27+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt)).Insert();
3328

3429
var wkb = db.TestGeometries.Select(g => g.Geometry.STAsBinary()).Single();
3530

3631
Assert.AreEqual(21, wkb.Length);
37-
Assert.AreEqual(1, wkb[0]); // Depends on server machine endianness
32+
Assert.AreEqual(1, wkb[0]); // TODO: depends on server machine endianness
3833
Assert.AreEqual(1, BitConverter.ToUInt32(wkb, 1));
3934
Assert.AreEqual(2, BitConverter.ToDouble(wkb, 5));
4035
Assert.AreEqual(4, BitConverter.ToDouble(wkb, 13));
@@ -47,18 +42,14 @@ public void TestSTAsGeoJSON()
4742
using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
4843
{
4944
const string wkt1 = "POINT(2.0 4.0)";
50-
db.Insert(new TestGeometryEntity(1, null));
51-
var geometry1 = db.TestGeometries.Select(g => GeometryInput.STGeomFromText(wkt1)).Single();
52-
db.Update(new TestGeometryEntity(1, geometry1));
45+
db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt1)).Insert();
5346

5447
var geojson1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STAsGeoJSON()).Single();
5548

5649
Assert.AreEqual("{\"type\":\"Point\",\"coordinates\":[2,4]}", geojson1);
5750

5851
const string wkt2 = "LINESTRING(1 2 3, 4 5 6)";
59-
db.Insert(new TestGeometryEntity(2, null));
60-
var geometry2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => GeometryInput.STGeomFromText(wkt2)).Single();
61-
db.Update(new TestGeometryEntity(2, geometry2));
52+
db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STGeomFromText(wkt2)).Insert();
6253

6354
var geojson2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STAsGeoJSON()).Single();
6455

0 commit comments

Comments
 (0)