Skip to content

Commit 7a36e05

Browse files
committed
Fix HasOneThrough test and add HasManyThrough test.
1 parent 28d685d commit 7a36e05

22 files changed

+339
-45
lines changed

tests/Fixtures/Author.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
use Illuminate\Database\Eloquent\Builder;
55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Database\Eloquent\Relations\HasMany;
7+
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
78
use Illuminate\Database\Eloquent\Relations\HasOne;
8-
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
99
use Illuminate\Database\Eloquent\SoftDeletes;
1010

1111
class Author extends Model
@@ -27,9 +27,9 @@ public function books() : HasMany
2727
return $this->hasMany(Book::class);
2828
}
2929

30-
public function printer() : HasOneThrough
30+
public function printers() : HasManyThrough
3131
{
32-
return $this->hasOneThrough(Printer::class, Book::class);
32+
return $this->hasManyThrough(Printer::class, Book::class);
3333
}
3434

3535
public function profile() : HasOne

tests/Fixtures/AuthorBeginsWithA.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Database\Eloquent\Builder;
66
use Illuminate\Database\Eloquent\Model;
77
use Illuminate\Database\Eloquent\Relations\HasMany;
8+
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
89
use Illuminate\Database\Eloquent\Relations\HasOne;
910

1011
class AuthorBeginsWithA extends Model
@@ -33,6 +34,11 @@ public function books() : HasMany
3334
return $this->hasMany(Book::class);
3435
}
3536

37+
public function printers() : HasManyThrough
38+
{
39+
return $this->hasManyThrough(Printer::class, Book::class);
40+
}
41+
3642
public function profile() : HasOne
3743
{
3844
return $this->hasOne(Profile::class);

tests/Fixtures/AuthorWithInlineGlobalScope.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Database\Eloquent\Relations\HasOne;
88
use Illuminate\Database\Eloquent\SoftDeletes;
99
use GeneaLabs\LaravelModelCaching\CachedBuilder;
10+
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
1011

1112
class AuthorWithInlineGlobalScope extends Model
1213
{
@@ -37,6 +38,11 @@ public function books() : HasMany
3738
return $this->hasMany(Book::class);
3839
}
3940

41+
public function printers() : HasManyThrough
42+
{
43+
return $this->hasManyThrough(Printer::class, Book::class);
44+
}
45+
4046
public function profile() : HasOne
4147
{
4248
return $this->hasOne(Profile::class);

tests/Fixtures/History.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
2+
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
5+
use Illuminate\Database\Eloquent\Relations\BelongsTo;
6+
use Illuminate\Database\Eloquent\SoftDeletes;
7+
8+
class History extends Model
9+
{
10+
use Cachable;
11+
12+
protected $fillable = [
13+
"name",
14+
"user_id",
15+
];
16+
17+
public function user() : BelongsTo
18+
{
19+
return $this->belongsTo(User::class);
20+
}
21+
}

tests/Fixtures/Supplier.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
2+
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
5+
use Illuminate\Database\Eloquent\Relations\HasOne;
6+
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
7+
use Illuminate\Database\Eloquent\SoftDeletes;
8+
9+
class Supplier extends Model
10+
{
11+
use Cachable;
12+
13+
protected $fillable = [
14+
'name',
15+
];
16+
17+
public function user() : HasOne
18+
{
19+
return $this->hasOne(User::class);
20+
}
21+
22+
public function history() : HasOneThrough
23+
{
24+
return $this->hasOneThrough(History::class, User::class);
25+
}
26+
}

tests/Fixtures/UncachedAuthor.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use Illuminate\Database\Eloquent\Builder;
44
use Illuminate\Database\Eloquent\Model;
55
use Illuminate\Database\Eloquent\Relations\HasMany;
6+
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
67
use Illuminate\Database\Eloquent\Relations\HasOne;
78
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
89
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -34,13 +35,9 @@ public function getLatestBookAttribute()
3435
->first();
3536
}
3637

37-
public function printer() : HasOneThrough
38+
public function printers() : HasManyThrough
3839
{
39-
return $this->hasOneThrough(
40-
Printer::class,
41-
Book::class,
42-
"author_id"
43-
);
40+
return $this->hasManyThrough(Printer::class, Book::class, "author_id");
4441
}
4542

4643
public function profile() : HasOne

tests/Fixtures/UncachedAuthorWithInlineGlobalScope.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use Illuminate\Database\Eloquent\Builder;
44
use Illuminate\Database\Eloquent\Model;
55
use Illuminate\Database\Eloquent\Relations\HasMany;
6+
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
67
use Illuminate\Database\Eloquent\Relations\HasOne;
78
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
89
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -35,13 +36,9 @@ public function books() : HasMany
3536
return $this->hasMany(UncachedBook::class);
3637
}
3738

38-
public function printer() : HasOneThrough
39+
public function printers() : HasManyThrough
3940
{
40-
return $this->hasOneThrough(
41-
Printer::class,
42-
Book::class,
43-
"author_id"
44-
);
41+
return $this->hasManyThrough(Printer::class, Book::class, "author_id");
4542
}
4643

4744
public function profile() : HasOne

tests/Fixtures/UncachedHistory.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
2+
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
5+
use Illuminate\Database\Eloquent\Relations\BelongsTo;
6+
use Illuminate\Database\Eloquent\SoftDeletes;
7+
8+
class UncachedHistory extends Model
9+
{
10+
protected $fillable = [
11+
"name",
12+
"user_id",
13+
];
14+
protected $table = "histories";
15+
16+
public function user() : BelongsTo
17+
{
18+
return $this->belongsTo(UncachedUser::class, "user_id");
19+
}
20+
}

tests/Fixtures/UncachedSupplier.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
2+
3+
use Illuminate\Database\Eloquent\Model;
4+
use Illuminate\Database\Eloquent\Relations\HasOne;
5+
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
6+
7+
class UncachedSupplier extends Model
8+
{
9+
protected $fillable = [
10+
'name',
11+
];
12+
protected $table = "suppliers";
13+
14+
public function user() : HasOne
15+
{
16+
return $this->hasOne(User::class);
17+
}
18+
19+
public function history() : HasOneThrough
20+
{
21+
return $this->hasOneThrough(
22+
History::class,
23+
User::class,
24+
"supplier_id",
25+
"user_id"
26+
);
27+
}
28+
}

tests/Fixtures/UncachedUser.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
2+
3+
use Illuminate\Database\Eloquent\Model;
4+
use Illuminate\Database\Eloquent\Relations\BelongsTo;
5+
6+
class UncachedUser extends Model
7+
{
8+
protected $fillable = [
9+
"name",
10+
"supplier_id",
11+
];
12+
protected $table = "users";
13+
14+
public function supplier() : BelongsTo
15+
{
16+
return $this->belongsTo(UncachedSupplier::class, "supplier_id");
17+
}
18+
}

0 commit comments

Comments
 (0)