Skip to content

Commit dd9af00

Browse files
committed
Add firstOrCreate test
1 parent 16b1bbe commit dd9af00

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Integration;
2+
3+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Author;
4+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Book;
5+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Profile;
6+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Publisher;
7+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Store;
8+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedAuthor;
9+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedBook;
10+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedProfile;
11+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
12+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
13+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Http\Resources\Author as AuthorResource;
14+
use GeneaLabs\LaravelModelCaching\Tests\IntegrationTestCase;
15+
use Illuminate\Foundation\Testing\RefreshDatabase;
16+
use Illuminate\Support\Collection;
17+
18+
class FirstOrCreateTest extends IntegrationTestCase
19+
{
20+
use RefreshDatabase;
21+
22+
public function testFirstOrCreateFlushesCacheForModel()
23+
{
24+
(new Author)->truncate();
25+
26+
$items = [
27+
['name' => 'foo', 'email' => 'test1@noemail.com'],
28+
['name' => 'foo', 'email' => 'test2@noemail.com'],
29+
['name' => 'foo', 'email' => 'test3@noemail.com'],
30+
['name' => 'foo', 'email' => 'test4@noemail.com'],
31+
['name' => 'foo', 'email' => 'test5@noemail.com'],
32+
];
33+
34+
foreach ($items as $item) {
35+
(new Author)->firstOrCreate($item);
36+
}
37+
38+
$authors = (new Author)->get();
39+
40+
$this->assertEquals(5, $authors->count());
41+
}
42+
}

0 commit comments

Comments
 (0)