Skip to content

Commit 5db7740

Browse files
committed
Add integration test for addSelect()
1 parent 1ffaa27 commit 5db7740

File tree

1 file changed

+47
-22
lines changed

1 file changed

+47
-22
lines changed

tests/Integration/CachedBuilder/SelectTest.php

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

3+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Author;
34
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Book;
5+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedAuthor;
46
use GeneaLabs\LaravelModelCaching\Tests\IntegrationTestCase;
57

68
class SelectTest extends IntegrationTestCase
@@ -38,28 +40,51 @@ public function testSelectWithRawColumns()
3840
$this->assertEquals($liveResults, $cachedResults);
3941
}
4042

41-
// public function testSelectFieldsAreCached()
42-
// {
43-
// $key = sha1("genealabs:laravel-model-caching:testing:{$this->testingSqlitePath}testing.sqlite:authors:genealabslaravelmodelcachingtestsfixturesauthor_id_name-first");
44-
// $tags = [
45-
// "genealabs:laravel-model-caching:testing:{$this->testingSqlitePath}testing.sqlite:genealabslaravelmodelcachingtestsfixturesauthor",
46-
// ];
43+
public function testSelectFieldsAreCached()
44+
{
45+
$key = sha1("genealabs:laravel-model-caching:testing:{$this->testingSqlitePath}testing.sqlite:authors:genealabslaravelmodelcachingtestsfixturesauthor_id_name-first");
46+
$tags = [
47+
"genealabs:laravel-model-caching:testing:{$this->testingSqlitePath}testing.sqlite:genealabslaravelmodelcachingtestsfixturesauthor",
48+
];
49+
50+
$authorFields = (new Author)
51+
->select("id", "name")
52+
->first()
53+
->getAttributes();
54+
$uncachedFields = (new UncachedAuthor)
55+
->select("id", "name")
56+
->first()
57+
->getAttributes();
58+
$cachedFields = $this
59+
->cache()
60+
->tags($tags)
61+
->get($key)['value']
62+
->getAttributes();
63+
64+
$this->assertEquals($cachedFields, $authorFields);
65+
$this->assertEquals($cachedFields, $uncachedFields);
66+
}
67+
68+
/** @group test */
69+
public function testAddSelectMethod()
70+
{
71+
$key = sha1("genealabs:laravel-model-caching:testing:/Users/mike/Developer/Sites/laravel-model-caching/tests/database/testing.sqlite:authors:genealabslaravelmodelcachingtestsfixturesauthor_(SELECT id FROM authors WHERE id = 1)-first");
72+
$tags = [
73+
"genealabs:laravel-model-caching:testing:{$this->testingSqlitePath}testing.sqlite:genealabslaravelmodelcachingtestsfixturesauthor",
74+
];
4775

48-
// $authorFields = (new Author)
49-
// ->select("id", "name")
50-
// ->first()
51-
// ->getAttributes();
52-
// $uncachedFields = (new UncachedAuthor)
53-
// ->select("id", "name")
54-
// ->first()
55-
// ->getAttributes();
56-
// $cachedFields = $this
57-
// ->cache()
58-
// ->tags($tags)
59-
// ->get($key)['value']
60-
// ->getAttributes();
76+
$result = (new Author)
77+
->addSelect(app("db")->raw("(SELECT id FROM authors WHERE id = 1)"))
78+
->first();
79+
$uncachedResult = (new UncachedAuthor)
80+
->addSelect(app("db")->raw("(SELECT id FROM authors WHERE id = 1)"))
81+
->first();
82+
$uncachedResult = $this
83+
->cache()
84+
->tags($tags)
85+
->get($key)['value'];
6186

62-
// $this->assertEquals($cachedFields, $authorFields);
63-
// $this->assertEquals($cachedFields, $uncachedFields);
64-
// }
87+
$this->assertEquals($uncachedResult, $result);
88+
$this->assertEquals($uncachedResult, $uncachedResult);
89+
}
6590
}

0 commit comments

Comments
 (0)