Skip to content

Commit 5d8378d

Browse files
authored
Merge pull request #51 from GeneaLabs/master
Update laravel-5.5 branch
2 parents 0b0d067 + 15730e0 commit 5d8378d

15 files changed

+94
-47
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
# Model Caching for Laravel
44
[![Gitter](https://badges.gitter.im/GeneaLabs/laravel-model-caching.svg)](https://gitter.im/GeneaLabs/laravel-model-caching?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge)
55
[![Travis](https://img.shields.io/travis/GeneaLabs/laravel-model-caching.svg)](https://travis-ci.org/GeneaLabs/laravel-model-caching)
6-
[![SensioLabs Insight](https://img.shields.io/sensiolabs/i/fde269ac-c382-4d17-a647-c69ad6b9dd85.svg)](https://insight.sensiolabs.com/projects/fde269ac-c382-4d17-a647-c69ad6b9dd85)
76
[![Scrutinizer](https://img.shields.io/scrutinizer/g/GeneaLabs/laravel-model-caching.svg)](https://scrutinizer-ci.com/g/GeneaLabs/laravel-model-caching)
87
[![Coveralls](https://img.shields.io/coveralls/GeneaLabs/laravel-model-caching.svg)](https://coveralls.io/github/GeneaLabs/laravel-model-caching)
98
[![GitHub (pre-)release](https://img.shields.io/github/release/GeneaLabs/laravel-model-caching/all.svg)](https://github.com/GeneaLabs/laravel-model-caching)
@@ -124,7 +123,7 @@ information included to be actionable.
124123
Please review the Contribution Guidelines <https://github.com/GeneaLabs/laravel-model-caching/blob/master/CONTRIBUTING.md>.
125124
Only PRs that meet all criterium will be accepted.
126125

127-
## Support Open-Source Software - Give Thanks!
126+
## ❤️ Open-Source Software - Give ⭐️
128127
We have included the awesome `symfony/thanks` composer package as a dev
129128
dependency. Let your OS package maintainers know you appreciate them by starring
130129
the packages you use. Simply run composer thanks after installing this package.

composer.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616
"require-dev": {
1717
"codedungeon/phpunit-result-printer": "^0.4.4",
1818
"fzaninotto/faker": "~1.4",
19-
"laravel/laravel": "5.5.*",
2019
"mockery/mockery": "0.9.*",
21-
"phpmd/phpmd": "^2.6",
22-
"phpunit/phpunit": "5.7.*",
20+
"orchestra/database": "^3.5",
21+
"orchestra/testbench-browser-kit": "^3.5",
22+
"orchestra/testbench-dusk": "3.5.x-dev@dev",
23+
"orchestra/testbench": "^3.5",
2324
"php-coveralls/php-coveralls" : "*",
25+
"phpmd/phpmd": "*",
26+
"phpunit/phpunit": "*",
2427
"sebastian/phpcpd": "*",
2528
"symfony/thanks": "^1.0"
2629
},

phpunit.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
syntaxCheck="false"
1414
>
1515
<testsuites>
16+
<testsuite name="Browser">
17+
<directory suffix="Test.php">./tests/Browser</directory>
18+
</testsuite>
19+
1620
<testsuite name="Feature">
1721
<directory suffix="Test.php">./tests/Feature</directory>
1822
</testsuite>
@@ -29,10 +33,10 @@
2933
<php>
3034
<env name="APP_KEY" value="base64:Xgs1LQt1GdVHhD6qyYCXnyq61DE3UKqJ5k2SJc+Nw2g="/>
3135
<env name="APP_ENV" value="testing"/>
36+
<env name="APP_URL" value="http://127.0.0.1:8000"/>
3237
<env name="CACHE_DRIVER" value="array"/>
3338
<env name="SESSION_DRIVER" value="array"/>
3439
<env name="QUEUE_DRIVER" value="sync"/>
35-
<env name="DB_CONNECTION" value="sqlite"/>
36-
<env name="DB_DATABASE" value=":memory:"/>
40+
<env name="DB_CONNECTION" value="testing"/>
3741
</php>
3842
</phpunit>

src/CachedBuilder.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,16 @@ public function sum($column)
146146
return parent::sum($column);
147147
});
148148
}
149+
150+
public function value($column)
151+
{
152+
if (! $this->isCachable) {
153+
return parent::value($column);
154+
}
155+
156+
return $this->cache($this->makeCacheTags())
157+
->rememberForever($this->makeCacheKey() . "-value_{$column}", function () use ($column) {
158+
return parent::value($column);
159+
});
160+
}
149161
}

tests/BrowserTestCase.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;
2+
3+
use Orchestra\Testbench\Dusk\TestCase as BaseTestCase;
4+
5+
abstract class BrowserTestCase extends BaseTestCase
6+
{
7+
use CreatesApplication;
8+
9+
public static function setUpBeforeClass()
10+
{
11+
static::serve();
12+
}
13+
14+
public static function tearDownAfterClass()
15+
{
16+
static::stopServing();
17+
}
18+
}

tests/CreatesApplication.php

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests;
22

33
use GeneaLabs\LaravelModelCaching\Providers\Service as LaravelModelCachingService;
4-
use Illuminate\Contracts\Console\Kernel;
5-
use Illuminate\Database\Eloquent\Factory;
4+
use Orchestra\Database\ConsoleServiceProvider;
65

76
trait CreatesApplication
87
{
9-
public function createApplication()
8+
public function setUp()
109
{
11-
$app = require __DIR__ . '/../vendor/laravel/laravel/bootstrap/app.php';
12-
$app->make(Kernel::class)->bootstrap();
13-
$app->make(Factory::class)->load(__DIR__ . '/database/factories');
14-
$app->afterResolving('migrator', function ($migrator) {
15-
$migrator->path(__DIR__ . '/database/migrations');
16-
});
17-
$app->register(LaravelModelCachingService::class);
10+
parent::setUp();
1811

19-
return $app;
12+
$this->withFactories(__DIR__ . '/database/factories');
13+
$this->loadMigrationsFrom(realpath(__DIR__ . '/database/migrations'));
14+
}
15+
16+
/**
17+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
18+
*/
19+
protected function getPackageProviders($app)
20+
{
21+
return [
22+
LaravelModelCachingService::class,
23+
ConsoleServiceProvider::class,
24+
];
2025
}
2126
}

tests/FeatureTestCase.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests;
2+
3+
use Orchestra\Testbench\BrowserKit\TestCase as BaseTestCase;
4+
5+
abstract class FeatureTestCase extends BaseTestCase
6+
{
7+
use CreatesApplication;
8+
}

tests/TestCase.php

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/Unit/CachedBuilderTest.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
1212
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
1313
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Http\Resources\Author as AuthorResource;
14-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
14+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1515
use Illuminate\Foundation\Testing\RefreshDatabase;
1616

1717
/**
1818
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
1919
* @SuppressWarnings(PHPMD.TooManyMethods)
2020
*/
21-
class CachedBuilderTest extends TestCase
21+
class CachedBuilderTest extends UnitTestCase
2222
{
2323
use RefreshDatabase;
2424

@@ -412,24 +412,22 @@ public function testSumModelResultsCreatesCache()
412412

413413
public function testValueModelResultsCreatesCache()
414414
{
415-
$authors = (new Author)->with('books', 'profile')
415+
$authorName = (new Author)->with('books', 'profile')
416416
->value('name');
417-
$key = 'genealabslaravelmodelcachingtestsfixturesauthor_name-books-profile-first';
417+
$key = 'genealabslaravelmodelcachingtestsfixturesauthor-books-profile-value_name';
418418
$tags = [
419419
'genealabslaravelmodelcachingtestsfixturesauthor',
420420
'genealabslaravelmodelcachingtestsfixturesbook',
421421
'genealabslaravelmodelcachingtestsfixturesprofile',
422422
];
423423

424-
$cachedResults = cache()->tags($tags)
425-
->get($key)
426-
->name;
427-
428-
$liveResults = (new UncachedAuthor)->with('books', 'profile')
424+
$cachedResult = cache()->tags($tags)
425+
->get($key);
426+
$liveResult = (new UncachedAuthor)->with('books', 'profile')
429427
->value('name');
430428

431-
$this->assertEquals($authors, $cachedResults);
432-
$this->assertEquals($liveResults, $cachedResults);
429+
$this->assertEquals($authorName, $cachedResult);
430+
$this->assertEquals($authorName, $liveResult);
433431
}
434432

435433
public function testNestedRelationshipEagerLoading()

tests/Unit/CachedModelTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedProfile;
1111
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
1212
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
13-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
13+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1414
use Illuminate\Foundation\Testing\RefreshDatabase;
1515

16-
class CachedModelTest extends TestCase
16+
class CachedModelTest extends UnitTestCase
1717
{
1818
use RefreshDatabase;
1919

tests/Unit/Console/Commands/FlushTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Publisher;
77
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Store;
88
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedAuthor;
9-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
9+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1010
use Illuminate\Foundation\Testing\RefreshDatabase;
1111

12-
class FlushTest extends TestCase
12+
class FlushTest extends UnitTestCase
1313
{
1414
use RefreshDatabase;
1515

tests/Unit/DisabledCachedBuilderTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
1212
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
1313
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Http\Resources\Author as AuthorResource;
14-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
14+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1515
use Illuminate\Foundation\Testing\RefreshDatabase;
1616

1717
/**
1818
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
1919
* @SuppressWarnings(PHPMD.TooManyMethods)
2020
*/
21-
class DisabledCachedBuilderTest extends TestCase
21+
class DisabledCachedBuilderTest extends UnitTestCase
2222
{
2323
use RefreshDatabase;
2424

tests/Unit/DisabledCachedModelTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedProfile;
1111
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
1212
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
13-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
13+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1414
use Illuminate\Foundation\Testing\RefreshDatabase;
1515

16-
class DisabledCachedModelTest extends TestCase
16+
class DisabledCachedModelTest extends UnitTestCase
1717
{
1818
use RefreshDatabase;
1919

tests/Unit/Traits/CachableTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedProfile;
1111
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
1212
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
13-
use GeneaLabs\LaravelModelCaching\Tests\TestCase;
13+
use GeneaLabs\LaravelModelCaching\Tests\UnitTestCase;
1414
use Illuminate\Foundation\Testing\RefreshDatabase;
1515

16-
class CachableTest extends TestCase
16+
class CachableTest extends UnitTestCase
1717
{
1818
use RefreshDatabase;
1919

tests/UnitTestCase.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests;
2+
3+
use Orchestra\Testbench\TestCase as BaseTestCase;
4+
5+
abstract class UnitTestCase extends BaseTestCase
6+
{
7+
use CreatesApplication;
8+
}

0 commit comments

Comments
 (0)