Skip to content

Commit bf7888f

Browse files
committed
Fixed unit tests
1 parent cb05acf commit bf7888f

File tree

6 files changed

+253
-46
lines changed

6 files changed

+253
-46
lines changed

tests/Unit/Eloquent/BuilderTest.php

+38
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,44 @@ public function testUpdatePolygon()
7272

7373
$this->builder->update(['polygon' => $polygon]);
7474
}
75+
76+
public function testUpdatePointWithSrid()
77+
{
78+
$point = new Point(1, 2, 4326);
79+
$this->queryBuilder
80+
->shouldReceive('update')
81+
->with(['point' => new SpatialExpression($point)])
82+
->once();
83+
84+
$this->builder->update(['point' => $point]);
85+
}
86+
87+
public function testUpdateLinestringWithSrid()
88+
{
89+
$linestring = new LineString([new Point(0, 0), new Point(1, 1), new Point(2, 2)], 4326);
90+
91+
$this->queryBuilder
92+
->shouldReceive('update')
93+
->with(['linestring' => new SpatialExpression($linestring)])
94+
->once();
95+
96+
$this->builder->update(['linestring' => $linestring]);
97+
}
98+
99+
public function testUpdatePolygonWithSrid()
100+
{
101+
$linestrings[] = new LineString([new Point(0, 0), new Point(0, 1)]);
102+
$linestrings[] = new LineString([new Point(0, 1), new Point(1, 1)]);
103+
$linestrings[] = new LineString([new Point(1, 1), new Point(0, 0)]);
104+
$polygon = new Polygon($linestrings, 4326);
105+
106+
$this->queryBuilder
107+
->shouldReceive('update')
108+
->with(['polygon' => new SpatialExpression($polygon)])
109+
->once();
110+
111+
$this->builder->update(['polygon' => $polygon]);
112+
}
75113
}
76114

77115
class TestBuilderModel extends Model

tests/Unit/Eloquent/SpatialTraitTest.php

+14-14
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ public function testInsertUpdatePointHasCorrectSql()
3737
$this->model->save();
3838

3939
$this->assertStringStartsWith('insert', $this->queries[0]);
40-
$this->assertContains('insert into `test_models` (`point`) values (ST_GeomFromText(?))', $this->queries[0]);
40+
$this->assertContains('insert into `test_models` (`point`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
4141
// TODO: assert bindings in query
4242
$this->assertTrue($this->model->exists);
4343

4444
$this->model->point = new Point(1, 2);
4545
$this->model->save();
4646

4747
$this->assertStringStartsWith('update', $this->queries[1]);
48-
$this->assertContains('update `test_models` set `point` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
48+
$this->assertContains('update `test_models` set `point` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
4949
// TODO: assert bindings in query
5050
}
5151

@@ -60,15 +60,15 @@ public function testInsertUpdateLineStringHasCorrectSql()
6060
$this->model->save();
6161

6262
$this->assertStringStartsWith('insert', $this->queries[0]);
63-
$this->assertContains('insert into `test_models` (`linestring`) values (ST_GeomFromText(?))', $this->queries[0]);
63+
$this->assertContains('insert into `test_models` (`linestring`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
6464
// TODO: assert bindings in query
6565
$this->assertTrue($this->model->exists);
6666

6767
$this->model->linestring = new \Grimzy\LaravelMysqlSpatial\Types\LineString([$point1, $point2]);
6868
$this->model->save();
6969

7070
$this->assertStringStartsWith('update', $this->queries[1]);
71-
$this->assertContains('update `test_models` set `linestring` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
71+
$this->assertContains('update `test_models` set `linestring` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
7272
// TODO: assert bindings in query
7373
}
7474

@@ -87,14 +87,14 @@ public function testInsertUpdatePolygonHasCorrectSql()
8787
$this->model->save();
8888

8989
$this->assertStringStartsWith('insert', $this->queries[0]);
90-
$this->assertContains('insert into `test_models` (`polygon`) values (ST_GeomFromText(?))', $this->queries[0]);
90+
$this->assertContains('insert into `test_models` (`polygon`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
9191
// TODO: assert bindings in query
9292
$this->assertTrue($this->model->exists);
9393

9494
$this->model->polygon = new \Grimzy\LaravelMysqlSpatial\Types\Polygon([$linestring1, $linestring2]);
9595
$this->model->save();
9696
$this->assertStringStartsWith('update', $this->queries[1]);
97-
$this->assertContains('update `test_models` set `polygon` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
97+
$this->assertContains('update `test_models` set `polygon` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
9898
// TODO: assert bindings in query
9999
}
100100

@@ -109,15 +109,15 @@ public function testInsertUpdateMultiPointHasCorrectSql()
109109
$this->model->save();
110110

111111
$this->assertStringStartsWith('insert', $this->queries[0]);
112-
$this->assertContains('insert into `test_models` (`multipoint`) values (ST_GeomFromText(?))', $this->queries[0]);
112+
$this->assertContains('insert into `test_models` (`multipoint`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
113113
// TODO: assert bindings in query
114114
$this->assertTrue($this->model->exists);
115115

116116
$this->model->multipoint = new \Grimzy\LaravelMysqlSpatial\Types\MultiPoint([$point1, $point2]);
117117
$this->model->save();
118118

119119
$this->assertStringStartsWith('update', $this->queries[1]);
120-
$this->assertContains('update `test_models` set `multipoint` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
120+
$this->assertContains('update `test_models` set `multipoint` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
121121
// TODO: assert bindings in query
122122
}
123123

@@ -136,14 +136,14 @@ public function testInsertUpdateMultiLineStringHasCorrectSql()
136136
$this->model->save();
137137

138138
$this->assertStringStartsWith('insert', $this->queries[0]);
139-
$this->assertContains('insert into `test_models` (`multilinestring`) values (ST_GeomFromText(?))', $this->queries[0]);
139+
$this->assertContains('insert into `test_models` (`multilinestring`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
140140
// TODO: assert bindings in query
141141
$this->assertTrue($this->model->exists);
142142

143143
$this->model->multilinestring = new \Grimzy\LaravelMysqlSpatial\Types\MultiLineString([$linestring1, $linestring2]);
144144
$this->model->save();
145145
$this->assertStringStartsWith('update', $this->queries[1]);
146-
$this->assertContains('update `test_models` set `multilinestring` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
146+
$this->assertContains('update `test_models` set `multilinestring` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
147147
// TODO: assert bindings in query
148148
}
149149

@@ -171,14 +171,14 @@ public function testInsertUpdateMultiPolygonHasCorrectSql()
171171
$this->model->save();
172172

173173
$this->assertStringStartsWith('insert', $this->queries[0]);
174-
$this->assertContains('insert into `test_models` (`multipolygon`) values (ST_GeomFromText(?))', $this->queries[0]);
174+
$this->assertContains('insert into `test_models` (`multipolygon`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
175175
// TODO: assert bindings in query
176176
$this->assertTrue($this->model->exists);
177177

178178
$this->model->multipolygon = new \Grimzy\LaravelMysqlSpatial\Types\MultiPolygon([$polygon1, $polygon2]);
179179
$this->model->save();
180180
$this->assertStringStartsWith('update', $this->queries[1]);
181-
$this->assertContains('update `test_models` set `multipolygon` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
181+
$this->assertContains('update `test_models` set `multipolygon` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
182182
// TODO: assert bindings in query
183183
}
184184

@@ -195,14 +195,14 @@ public function testInsertUpdateGeometryCollectionHasCorrectSql()
195195
$this->model->save();
196196

197197
$this->assertStringStartsWith('insert', $this->queries[0]);
198-
$this->assertContains('insert into `test_models` (`geometrycollection`) values (ST_GeomFromText(?))', $this->queries[0]);
198+
$this->assertContains('insert into `test_models` (`geometrycollection`) values (ST_GeomFromText(?, ?))', $this->queries[0]);
199199
// TODO: assert bindings in query
200200
$this->assertTrue($this->model->exists);
201201

202202
$this->model->geometrycollection = new \Grimzy\LaravelMysqlSpatial\Types\GeometryCollection([$point1, $linestring1]);
203203
$this->model->save();
204204
$this->assertStringStartsWith('update', $this->queries[1]);
205-
$this->assertContains('update `test_models` set `geometrycollection` = ST_GeomFromText(?) where `id` = ?', $this->queries[1]);
205+
$this->assertContains('update `test_models` set `geometrycollection` = ST_GeomFromText(?, ?) where `id` = ?', $this->queries[1]);
206206
// TODO: assert bindings in query
207207
}
208208

tests/Unit/Schema/BlueprintTest.php

+91-8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
class BlueprintTest extends BaseTestCase
1010
{
11+
/**
12+
* @var \Grimzy\LaravelMysqlSpatial\Schema\Blueprint $blueprint
13+
*/
1114
protected $blueprint;
1215

1316
public function setUp()
@@ -22,7 +25,7 @@ public function testGeometry()
2225
{
2326
$this->blueprint
2427
->shouldReceive('addColumn')
25-
->with('geometry', 'col')
28+
->with('geometry', 'col', ['srid' => null])
2629
->once();
2730

2831
$this->blueprint->geometry('col');
@@ -42,7 +45,7 @@ public function testLinestring()
4245
{
4346
$this->blueprint
4447
->shouldReceive('addColumn')
45-
->with('linestring', 'col')
48+
->with('linestring', 'col', ['srid' => null])
4649
->once();
4750

4851
$this->blueprint->linestring('col');
@@ -52,7 +55,7 @@ public function testPolygon()
5255
{
5356
$this->blueprint
5457
->shouldReceive('addColumn')
55-
->with('polygon', 'col')
58+
->with('polygon', 'col', ['srid' => null])
5659
->once();
5760

5861
$this->blueprint->polygon('col');
@@ -62,7 +65,7 @@ public function testMultiPoint()
6265
{
6366
$this->blueprint
6467
->shouldReceive('addColumn')
65-
->with('multipoint', 'col')
68+
->with('multipoint', 'col', ['srid' => null])
6669
->once();
6770

6871
$this->blueprint->multipoint('col');
@@ -72,17 +75,17 @@ public function testMultiLineString()
7275
{
7376
$this->blueprint
7477
->shouldReceive('addColumn')
75-
->with('multilinestring', 'col')
78+
->with('multilinestring', 'col', ['srid' => null])
7679
->once();
7780

7881
$this->blueprint->multilinestring('col');
7982
}
8083

81-
public function testMulltiPolygon()
84+
public function testMultiPolygon()
8285
{
8386
$this->blueprint
8487
->shouldReceive('addColumn')
85-
->with('multipolygon', 'col')
88+
->with('multipolygon', 'col', ['srid' => null])
8689
->once();
8790

8891
$this->blueprint->multipolygon('col');
@@ -92,9 +95,89 @@ public function testGeometryCollection()
9295
{
9396
$this->blueprint
9497
->shouldReceive('addColumn')
95-
->with('geometrycollection', 'col')
98+
->with('geometrycollection', 'col', ['srid' => null])
9699
->once();
97100

98101
$this->blueprint->geometrycollection('col');
99102
}
103+
104+
public function testGeometryWithSrid()
105+
{
106+
$this->blueprint
107+
->shouldReceive('addColumn')
108+
->with('geometry', 'col', ['srid' => 4326])
109+
->once();
110+
111+
$this->blueprint->geometry('col', 4326);
112+
}
113+
114+
public function testPointWithSrid()
115+
{
116+
$this->blueprint
117+
->shouldReceive('addColumn')
118+
->with('point', 'col', ['srid' => 4326])
119+
->once();
120+
121+
$this->blueprint->point('col', 4326);
122+
}
123+
124+
public function testLinestringWithSrid()
125+
{
126+
$this->blueprint
127+
->shouldReceive('addColumn')
128+
->with('linestring', 'col', ['srid' => 4326])
129+
->once();
130+
131+
$this->blueprint->linestring('col', 4326);
132+
}
133+
134+
public function testPolygonWithSrid()
135+
{
136+
$this->blueprint
137+
->shouldReceive('addColumn')
138+
->with('polygon', 'col', ['srid' => 4326])
139+
->once();
140+
141+
$this->blueprint->polygon('col', 4326);
142+
}
143+
144+
public function testMultiPointWithSrid()
145+
{
146+
$this->blueprint
147+
->shouldReceive('addColumn')
148+
->with('multipoint', 'col', ['srid' => 4326])
149+
->once();
150+
151+
$this->blueprint->multipoint('col', 4326);
152+
}
153+
154+
public function testMultiLineStringWithSrid()
155+
{
156+
$this->blueprint
157+
->shouldReceive('addColumn')
158+
->with('multilinestring', 'col', ['srid' => 4326])
159+
->once();
160+
161+
$this->blueprint->multilinestring('col', 4326);
162+
}
163+
164+
public function testMultiPolygonWithSrid()
165+
{
166+
$this->blueprint
167+
->shouldReceive('addColumn')
168+
->with('multipolygon', 'col', ['srid' => 4326])
169+
->once();
170+
171+
$this->blueprint->multipolygon('col', 4326);
172+
}
173+
174+
public function testGeometryCollectionWithSrid()
175+
{
176+
$this->blueprint
177+
->shouldReceive('addColumn')
178+
->with('geometrycollection', 'col', ['srid' => 4326])
179+
->once();
180+
181+
$this->blueprint->geometrycollection('col', 4326);
182+
}
100183
}

0 commit comments

Comments
 (0)