Skip to content

Commit 4a10b4c

Browse files
committed
PHPORM-39: Add namespace for tests directory (#2)
* Skip MySQL tests if database is not available * Introduce tests namespace
1 parent 1303b5f commit 4a10b4c

36 files changed

+205
-51
lines changed

composer.json

+3-5
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,9 @@
3636
}
3737
},
3838
"autoload-dev": {
39-
"classmap": [
40-
"tests/TestCase.php",
41-
"tests/models",
42-
"tests/seeds"
43-
]
39+
"psr-4": {
40+
"Jenssegers\\Mongodb\\Tests\\": "tests/"
41+
}
4442
},
4543
"suggest": {
4644
"jenssegers/mongodb-session": "Add MongoDB session support to Laravel-MongoDB",

tests/AuthTest.php

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
<?php
22

3+
namespace Jenssegers\Mongodb\Tests;
4+
35
use Illuminate\Auth\Passwords\PasswordBroker;
6+
use Illuminate\Support\Facades\Auth;
7+
use Illuminate\Support\Facades\DB;
8+
use Illuminate\Support\Facades\Hash;
9+
use Jenssegers\Mongodb\Tests\Models\User;
410
use MongoDB\BSON\UTCDateTime;
511

612
class AuthTest extends TestCase

tests/CollectionTest.php

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
57
use Jenssegers\Mongodb\Collection;
68
use Jenssegers\Mongodb\Connection;
79
use MongoDB\BSON\ObjectID;

tests/ConnectionTest.php

+4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
7+
use Generator;
58
use Illuminate\Support\Facades\DB;
9+
use InvalidArgumentException;
610
use Jenssegers\Mongodb\Collection;
711
use Jenssegers\Mongodb\Connection;
812
use Jenssegers\Mongodb\Query\Builder;

tests/EmbeddedRelationsTest.php

+13-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,20 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
7+
use DateTime;
58
use Illuminate\Database\Eloquent\Collection;
69
use Illuminate\Events\Dispatcher;
10+
use Jenssegers\Mongodb\Tests\Models\Address;
11+
use Jenssegers\Mongodb\Tests\Models\Book;
12+
use Jenssegers\Mongodb\Tests\Models\Client;
13+
use Jenssegers\Mongodb\Tests\Models\Group;
14+
use Jenssegers\Mongodb\Tests\Models\Item;
15+
use Jenssegers\Mongodb\Tests\Models\Photo;
16+
use Jenssegers\Mongodb\Tests\Models\Role;
17+
use Jenssegers\Mongodb\Tests\Models\User;
18+
use Mockery;
719
use MongoDB\BSON\ObjectId;
820

921
class EmbeddedRelationsTest extends TestCase
@@ -678,7 +690,7 @@ public function testEmbeddedSave()
678690
{
679691
/** @var User $user */
680692
$user = User::create(['name' => 'John Doe']);
681-
/** @var \Address $address */
693+
/** @var Address $address */
682694
$address = $user->addresses()->create(['city' => 'New York']);
683695
$father = $user->father()->create(['name' => 'Mark Doe']);
684696

tests/GeospatialTest.php

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
7+
use Illuminate\Support\Facades\Schema;
8+
use Jenssegers\Mongodb\Tests\Models\Location;
9+
510
class GeospatialTest extends TestCase
611
{
712
public function setUp(): void

tests/HybridRelationsTest.php

+18
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,32 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
7+
use Illuminate\Database\Connection;
58
use Illuminate\Database\MySqlConnection;
9+
use Illuminate\Support\Facades\DB;
10+
use Jenssegers\Mongodb\Tests\Models\Book;
11+
use Jenssegers\Mongodb\Tests\Models\MysqlBook;
12+
use Jenssegers\Mongodb\Tests\Models\MysqlRole;
13+
use Jenssegers\Mongodb\Tests\Models\MysqlUser;
14+
use Jenssegers\Mongodb\Tests\Models\Role;
15+
use Jenssegers\Mongodb\Tests\Models\User;
16+
use PDOException;
617

718
class HybridRelationsTest extends TestCase
819
{
920
public function setUp(): void
1021
{
1122
parent::setUp();
1223

24+
/** @var Connection */
25+
try {
26+
DB::connection('mysql')->select('SELECT 1');
27+
} catch (PDOException) {
28+
$this->markTestSkipped('MySQL connection is not available.');
29+
}
30+
1331
MysqlUser::executeSchema();
1432
MysqlBook::executeSchema();
1533
MysqlRole::executeSchema();

tests/ModelTest.php

+10
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,24 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests;
6+
57
use Carbon\Carbon;
8+
use DateTime;
9+
use DateTimeImmutable;
610
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
711
use Illuminate\Database\Eloquent\ModelNotFoundException;
812
use Illuminate\Support\Facades\Date;
913
use Illuminate\Support\Str;
1014
use Jenssegers\Mongodb\Collection;
1115
use Jenssegers\Mongodb\Connection;
1216
use Jenssegers\Mongodb\Eloquent\Model;
17+
use Jenssegers\Mongodb\Tests\Models\Book;
18+
use Jenssegers\Mongodb\Tests\Models\Guarded;
19+
use Jenssegers\Mongodb\Tests\Models\Item;
20+
use Jenssegers\Mongodb\Tests\Models\MemberStatus;
21+
use Jenssegers\Mongodb\Tests\Models\Soft;
22+
use Jenssegers\Mongodb\Tests\Models\User;
1323
use MongoDB\BSON\ObjectID;
1424
use MongoDB\BSON\UTCDateTime;
1525

tests/models/Address.php renamed to tests/Models/Address.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
68
use Jenssegers\Mongodb\Relations\EmbedsMany;
79

@@ -12,6 +14,6 @@ class Address extends Eloquent
1214

1315
public function addresses(): EmbedsMany
1416
{
15-
return $this->embedsMany('Address');
17+
return $this->embedsMany(self::class);
1618
}
1719
}

tests/models/Birthday.php renamed to tests/Models/Birthday.php

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
68

79
/**

tests/models/Book.php renamed to tests/Models/Book.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Illuminate\Database\Eloquent\Relations\BelongsTo;
68
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
79

@@ -21,11 +23,11 @@ class Book extends Eloquent
2123

2224
public function author(): BelongsTo
2325
{
24-
return $this->belongsTo('User', 'author_id');
26+
return $this->belongsTo(User::class, 'author_id');
2527
}
2628

2729
public function mysqlAuthor(): BelongsTo
2830
{
29-
return $this->belongsTo('MysqlUser', 'author_id');
31+
return $this->belongsTo(MysqlUser::class, 'author_id');
3032
}
3133
}

tests/models/Client.php renamed to tests/Models/Client.php

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
68
use Illuminate\Database\Eloquent\Relations\HasMany;
79
use Illuminate\Database\Eloquent\Relations\MorphOne;
@@ -15,16 +17,16 @@ class Client extends Eloquent
1517

1618
public function users(): BelongsToMany
1719
{
18-
return $this->belongsToMany('User');
20+
return $this->belongsToMany(User::class);
1921
}
2022

2123
public function photo(): MorphOne
2224
{
23-
return $this->morphOne('Photo', 'has_image');
25+
return $this->morphOne(Photo::class, 'has_image');
2426
}
2527

2628
public function addresses(): HasMany
2729
{
28-
return $this->hasMany('Address', 'data.client_id', 'data.client_id');
30+
return $this->hasMany(Address::class, 'data.client_id', 'data.client_id');
2931
}
3032
}

tests/models/Group.php renamed to tests/Models/Group.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
68
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
79

@@ -13,6 +15,6 @@ class Group extends Eloquent
1315

1416
public function users(): BelongsToMany
1517
{
16-
return $this->belongsToMany('User', 'users', 'groups', 'users', '_id', '_id', 'users');
18+
return $this->belongsToMany(User::class, 'users', 'groups', 'users', '_id', '_id', 'users');
1719
}
1820
}

tests/models/Guarded.php renamed to tests/Models/Guarded.php

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
68

79
class Guarded extends Eloquent

tests/models/Item.php renamed to tests/Models/Item.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Illuminate\Database\Eloquent\Relations\BelongsTo;
68
use Jenssegers\Mongodb\Eloquent\Builder;
79
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
@@ -19,7 +21,7 @@ class Item extends Eloquent
1921

2022
public function user(): BelongsTo
2123
{
22-
return $this->belongsTo('User');
24+
return $this->belongsTo(User::class);
2325
}
2426

2527
public function scopeSharp(Builder $query)

tests/models/Location.php renamed to tests/Models/Location.php

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
68

79
class Location extends Eloquent

tests/models/MemberStatus.php renamed to tests/Models/MemberStatus.php

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
namespace Jenssegers\Mongodb\Tests\Models;
4+
35
enum MemberStatus: string
46
{
57
case Member = 'MEMBER';

tests/models/MysqlBook.php renamed to tests/Models/MysqlBook.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
7+
use Illuminate\Database\Eloquent\Model as EloquentModel;
58
use Illuminate\Database\Eloquent\Relations\BelongsTo;
69
use Illuminate\Database\Schema\Blueprint;
710
use Illuminate\Support\Facades\Schema;
811
use Jenssegers\Mongodb\Eloquent\HybridRelations;
912

10-
class MysqlBook extends Eloquent
13+
class MysqlBook extends EloquentModel
1114
{
1215
use HybridRelations;
1316

@@ -18,7 +21,7 @@ class MysqlBook extends Eloquent
1821

1922
public function author(): BelongsTo
2023
{
21-
return $this->belongsTo('User', 'author_id');
24+
return $this->belongsTo(User::class, 'author_id');
2225
}
2326

2427
/**

tests/models/MysqlRole.php renamed to tests/Models/MysqlRole.php

+6-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
7+
use Illuminate\Database\Eloquent\Model as EloquentModel;
58
use Illuminate\Database\Eloquent\Relations\BelongsTo;
69
use Illuminate\Database\Schema\Blueprint;
710
use Illuminate\Support\Facades\Schema;
811
use Jenssegers\Mongodb\Eloquent\HybridRelations;
912

10-
class MysqlRole extends Eloquent
13+
class MysqlRole extends EloquentModel
1114
{
1215
use HybridRelations;
1316

@@ -17,12 +20,12 @@ class MysqlRole extends Eloquent
1720

1821
public function user(): BelongsTo
1922
{
20-
return $this->belongsTo('User');
23+
return $this->belongsTo(User::class);
2124
}
2225

2326
public function mysqlUser(): BelongsTo
2427
{
25-
return $this->belongsTo('MysqlUser');
28+
return $this->belongsTo(MysqlUser::class);
2629
}
2730

2831
/**

tests/models/MysqlUser.php renamed to tests/Models/MysqlUser.php

+8-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
7+
use Illuminate\Database\Eloquent\Model as EloquentModel;
58
use Illuminate\Database\Eloquent\Relations\HasMany;
69
use Illuminate\Database\Eloquent\Relations\HasOne;
710
use Illuminate\Database\Schema\Blueprint;
11+
use Illuminate\Database\Schema\MySqlBuilder;
812
use Illuminate\Support\Facades\Schema;
913
use Jenssegers\Mongodb\Eloquent\HybridRelations;
1014

11-
class MysqlUser extends Eloquent
15+
class MysqlUser extends EloquentModel
1216
{
1317
use HybridRelations;
1418

@@ -18,12 +22,12 @@ class MysqlUser extends Eloquent
1822

1923
public function books(): HasMany
2024
{
21-
return $this->hasMany('Book', 'author_id');
25+
return $this->hasMany(Book::class, 'author_id');
2226
}
2327

2428
public function role(): HasOne
2529
{
26-
return $this->hasOne('Role');
30+
return $this->hasOne(Role::class);
2731
}
2832

2933
public function mysqlBooks(): HasMany
@@ -36,7 +40,7 @@ public function mysqlBooks(): HasMany
3640
*/
3741
public static function executeSchema(): void
3842
{
39-
/** @var \Illuminate\Database\Schema\MySqlBuilder $schema */
43+
/** @var MySqlBuilder $schema */
4044
$schema = Schema::connection('mysql');
4145

4246
if (! $schema->hasTable('users')) {

tests/models/Photo.php renamed to tests/Models/Photo.php

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
declare(strict_types=1);
44

5+
namespace Jenssegers\Mongodb\Tests\Models;
6+
57
use Illuminate\Database\Eloquent\Relations\MorphTo;
68
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
79

0 commit comments

Comments
 (0)