Add working test suite
This commit is contained in:
@ -10,17 +10,24 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.5.0",
|
"php": "^5.5.9 || ^7.0",
|
||||||
"illuminate/support": "5.*"
|
"illuminate/support": "5.1.* || 5.2.*"
|
||||||
},
|
},
|
||||||
"require-dev" :{
|
"require-dev" :{
|
||||||
"phpspec/phpspec": "~2.0"
|
"graham-campbell/testbench": "^3.1",
|
||||||
|
"mockery/mockery": "^0.9.4",
|
||||||
|
"phpunit/phpunit": "^4.8 || ^5.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"TomLingham\\Searchy\\": "src/"
|
"TomLingham\\Searchy\\": "src/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"TomLingham\\Tests\\Searchy\\": "tests/"
|
||||||
|
}
|
||||||
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"preferred-install": "dist"
|
"preferred-install": "dist"
|
||||||
},
|
},
|
||||||
|
@ -2,67 +2,82 @@
|
|||||||
|
|
||||||
namespace TomLingham\Searchy;
|
namespace TomLingham\Searchy;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Container\Container;
|
||||||
|
use Illuminate\Foundation\Application as LaravelApplication;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
use Laravel\Lumen\Application as LumenApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the searchy service provider class.
|
||||||
|
*
|
||||||
|
* @author Tom Lingham <tjlingham@gmail.com>
|
||||||
|
* @author Vincent Klaiber <hello@vinkla.com>
|
||||||
|
*/
|
||||||
class SearchyServiceProvider extends ServiceProvider
|
class SearchyServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Indicates if loading of the provider is deferred.
|
* Boot the service provider.
|
||||||
*
|
*
|
||||||
* @var bool
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected $defer = false;
|
public function boot()
|
||||||
|
|
||||||
/**
|
|
||||||
* Register the service provider.
|
|
||||||
*/
|
|
||||||
public function register()
|
|
||||||
{
|
{
|
||||||
//
|
$this->setupConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers searchy.
|
* Setup the config.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function registerSearchy()
|
protected function setupConfig()
|
||||||
{
|
|
||||||
// Laravel <= 5.1
|
|
||||||
$closure = function ($app) {
|
|
||||||
return new SearchBuilder( $app['config'] );
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
if ( method_exists($this->app, 'bindShared') )
|
|
||||||
{
|
|
||||||
$this->app->bindShared('searchy', $closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Laravel 5.2 Goodness :)
|
|
||||||
else {
|
|
||||||
$this->app->singleton('searchy', $closure);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads the configuration file.
|
|
||||||
*/
|
|
||||||
public function setupConfig()
|
|
||||||
{
|
{
|
||||||
$source = realpath(__DIR__.'/../config/searchy.php');
|
$source = realpath(__DIR__.'/../config/searchy.php');
|
||||||
|
|
||||||
if (class_exists('Illuminate\Foundation\Application', false)) {
|
if ($this->app instanceof LaravelApplication && $this->app->runningInConsole()) {
|
||||||
$this->publishes([$source => config_path('searchy.php')]);
|
$this->publishes([$source => config_path('searchy.php')]);
|
||||||
|
} elseif ($this->app instanceof LumenApplication) {
|
||||||
|
$this->app->configure('searchy');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->mergeConfigFrom($source, 'searchy');
|
$this->mergeConfigFrom($source, 'searchy');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Boot the service provider.
|
* Register the service provider.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function boot()
|
public function register()
|
||||||
{
|
{
|
||||||
$this->setupConfig();
|
$this->registerSearchBuilder();
|
||||||
$this->registerSearchy();
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the search builder class.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function registerSearchBuilder()
|
||||||
|
{
|
||||||
|
$this->app->singleton('searchy', function (Container $app) {
|
||||||
|
$config = $app['config'];
|
||||||
|
|
||||||
|
return new SearchBuilder($config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->app->alias('searchy', HashidsFactory::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the services provided by the provider.
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
*/
|
||||||
|
public function provides()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'searchy',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
26
tests/AbstractTestCase.php
Normal file
26
tests/AbstractTestCase.php
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TomLingham\Tests\Searchy;
|
||||||
|
|
||||||
|
use GrahamCampbell\TestBench\AbstractPackageTestCase;
|
||||||
|
use TomLingham\Searchy\SearchyServiceProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the abstract test case class.
|
||||||
|
*
|
||||||
|
* @author Vincent Klaiber <hello@vinkla.com>
|
||||||
|
*/
|
||||||
|
abstract class AbstractTestCase extends AbstractPackageTestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the service provider class.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Foundation\Application $app
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getServiceProviderClass($app)
|
||||||
|
{
|
||||||
|
return SearchyServiceProvider::class;
|
||||||
|
}
|
||||||
|
}
|
48
tests/Facades/SearchyTest.php
Normal file
48
tests/Facades/SearchyTest.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TomLingham\Tests\Searchy\Facades;
|
||||||
|
|
||||||
|
use GrahamCampbell\TestBenchCore\FacadeTrait;
|
||||||
|
use TomLingham\Searchy\Facades\Searchy;
|
||||||
|
use TomLingham\Searchy\SearchBuilder;
|
||||||
|
use TomLingham\Tests\Searchy\AbstractTestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the searchy facade test class.
|
||||||
|
*
|
||||||
|
* @author Vincent Klaiber <hello@vinkla.com>
|
||||||
|
*/
|
||||||
|
class SearchyTest extends AbstractTestCase
|
||||||
|
{
|
||||||
|
use FacadeTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the facade accessor.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getFacadeAccessor()
|
||||||
|
{
|
||||||
|
return 'searchy';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the facade class.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getFacadeClass()
|
||||||
|
{
|
||||||
|
return Searchy::class;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the facade root.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getFacadeRoot()
|
||||||
|
{
|
||||||
|
return SearchBuilder::class;
|
||||||
|
}
|
||||||
|
}
|
15
tests/ServiceProviderTest.php
Normal file
15
tests/ServiceProviderTest.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace TomLingham\Tests\Searchy;
|
||||||
|
|
||||||
|
use GrahamCampbell\TestBenchCore\ServiceProviderTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the service provider test.
|
||||||
|
*
|
||||||
|
* @author Vincent Klaiber <hello@vinkla.com>
|
||||||
|
*/
|
||||||
|
class ServiceProviderTest extends AbstractTestCase
|
||||||
|
{
|
||||||
|
use ServiceProviderTrait;
|
||||||
|
}
|
Reference in New Issue
Block a user