Skip to content

Commit c73abb5

Browse files
committed
Add test to make sure bindings are working properly for multiple whereIn clauses
1 parent a49ca01 commit c73abb5

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

src/CacheKey.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
use Illuminate\Support\Arr;
77
use Illuminate\Support\Collection;
88
use Illuminate\Database\Query\Expression;
9-
use Illuminate\Database\Eloquent\Relations\HasMany;
109
use Illuminate\Support\Str;
1110

1211
class CacheKey

src/CacheTags.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?php namespace GeneaLabs\LaravelModelCaching;
22

3-
use GeneaLabs\LaravelModelCaching\CachedBuilder;
43
use GeneaLabs\LaravelModelCaching\Traits\CachePrefixing;
54
use Illuminate\Database\Eloquent\Model;
65
use Illuminate\Database\Eloquent\Relations\Relation;

tests/Integration/CachedBuilder/WhereInTest.php

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Integration\CachedBuilder;
22

3+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Author;
34
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Book;
45
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedAuthor;
56
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedBook;
@@ -32,29 +33,49 @@ public function testWhereInUsingCollectionQuery()
3233
$this->assertEquals($liveResults->pluck("id"), $cachedResults->pluck("id"));
3334
}
3435

35-
/** @group test */
3636
public function testWhereInWhenSetIsEmpty()
3737
{
38-
$key = sha1('genealabs:laravel-model-caching:testing::memory::books:genealabslaravelmodelcachingtestsfixturesbook-author_id_in_1_2_3_4');
38+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-id_in_');
3939
$tags = [
40-
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook',
40+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
4141
];
42-
$authors = (new UncachedAuthor)
43-
->where("id", "<", 0)
44-
->get(["id"]);
42+
$authors = (new Author)
43+
->whereIn("id", [])
44+
->get();
45+
$cachedResults = $this
46+
->cache()
47+
->tags($tags)
48+
->get($key)['value'];
49+
$liveResults = (new UncachedAuthor)
50+
->whereIn("id", [])
51+
->get();
4552

46-
$books = (new Book)
47-
->whereIn("author_id", $authors)
53+
$this->assertEquals($liveResults->pluck("id"), $authors->pluck("id"));
54+
$this->assertEquals($liveResults->pluck("id"), $cachedResults->pluck("id"));
55+
}
56+
57+
public function testBindingsAreCorrectWithMultipleWhereInClauses()
58+
{
59+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-name_in_John-id_in_-name_in_Mike');
60+
$tags = [
61+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
62+
];
63+
$authors = (new Author)
64+
->whereIn("name", ["John"])
65+
->whereIn("id", [])
66+
->whereIn("name", ["Mike"])
4867
->get();
4968
$cachedResults = $this
5069
->cache()
5170
->tags($tags)
5271
->get($key)['value'];
53-
$liveResults = (new UncachedBook)
54-
->whereIn("author_id", $authors)
72+
$liveResults = (new UncachedAuthor)
73+
->whereIn("name", ["Mike"])
74+
->whereIn("id", [])
75+
->whereIn("name", ["John"])
5576
->get();
5677

57-
$this->assertEquals($liveResults->pluck("id"), $books->pluck("id"));
58-
$this->assertNull($cachedResults);
78+
$this->assertEquals($liveResults->pluck("id"), $authors->pluck("id"));
79+
$this->assertEquals($liveResults->pluck("id"), $cachedResults->pluck("id"));
5980
}
6081
}

0 commit comments

Comments
 (0)