Skip to content

Commit

Permalink
Merge pull request #33 from candasm/default_configuration_namespace_b…
Browse files Browse the repository at this point in the history
…ug_fix

Update default config namespace name.
  • Loading branch information
candasm authored Feb 27, 2017
2 parents a7ee6c7 + 79d368b commit 818c97f
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 31 deletions.
21 changes: 4 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,11 @@ Laravel artisan command
```
$ php artisan config:publish shift31/laravel-elasticsearch
```

Manually: Create [app/config/elasticsearch.php](src/config/elasticsearch.php), modifying the following contents
accordingly:
You can always read config parameters with:
```php
<?php

return array(
'hosts' => array(
'your.elasticsearch.server:9200'
),
'logPath' => 'path/to/your/elasticsearch/log',
);
\Config::get('shift31::elasticsearch');
```
Note: The keys of this array should be named according the parameters supported by Elasticsearch\Client.
Note: The keys of this array should be named according the parameters supported by [Elasticsearch\Client](https://github.com/elastic/elasticsearch-php/blob/0.4/src/Elasticsearch/Client.php).

3. In the `'providers'` array in app/config/app.php, add `'Shift31\LaravelElasticsearch\ElasticsearchServiceProvider'`.

Expand All @@ -77,11 +68,7 @@ $result = Es::search($searchParams);

Default Configuration
---------------------
If you return an empty array in the config file:

`'hosts'` defaults to localhost:9200

`'logPath'` defaults to `storage_path() . '/logs/elasticsearch.log'`
If you return an empty array in the config file, Service provider [merges default config with custom config variables](https://github.com/shift31/laravel-elasticsearch/blob/master/src/Shift31/LaravelElasticsearch/ElasticsearchServiceProvider.php#L27).

[Default config file](src/config/elasticsearch.php) which is publishing by artisan command.

Expand Down
3 changes: 3 additions & 0 deletions phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
<testsuite name="unit">
<directory suffix=".php">./tests/Unit</directory>
</testsuite>
<testsuite name="integration">
<directory suffix=".php">./tests/Integration</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class ElasticsearchServiceProvider extends ServiceProvider
*/
public function boot()
{
$this->package('shift31/laravel-elasticsearch');
$this->package('shift31/laravel-elasticsearch', 'shift31');
}

/**
Expand All @@ -21,7 +21,7 @@ public function boot()
public function register()
{
$this->app->singleton('elasticsearch', function () {
$customConfig = $this->app->config->get('elasticsearch');
$customConfig = $this->app->config->get('shift31::elasticsearch');
$defaultConfig = $this->loadDefaultConfig();

return new Client(array_merge($defaultConfig, $customConfig));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
namespace Shift31\LaravelElasticsearch\Tests\Integration;

use Orchestra\Testbench\TestCase;
use Illuminate\Support\Facades\Config;
use Shift31\LaravelElasticsearch\Facades\Es;

class ElasticsearchServiceProviderIntegrationTest extends TestCase
Expand All @@ -14,6 +15,14 @@ public function test_elasticsearch_simple_create_request()
$this->assertTrue($result['acknowledged']);
}

public function test_get_elasticsearch_config()
{
$config = Config::get('shift31::elasticsearch');
$this->assertArrayHasKey('hosts', $config);
$this->assertArrayHasKey('logPath', $config);
$this->assertArrayHasKey('logLevel', $config);
}

protected function getPackageProviders()
{
return ['Shift31\LaravelElasticsearch\ElasticsearchServiceProvider'];
Expand Down
25 changes: 13 additions & 12 deletions tests/Unit/ElasticsearchServiceProviderUnitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public function test_boot_method_to_set_config_file()
});
$configMock = Mockery::mock('Illuminate\Config\Repository', function (MockInterface $m) use ($configPath) {
$m->shouldReceive('package')
->with('shift31/laravel-elasticsearch', $configPath, 'laravel-elasticsearch')
->with('shift31/laravel-elasticsearch', $configPath, 'shift31')
->once()
->andReturnSelf();
});
Expand All @@ -42,24 +42,25 @@ public function test_register_method_to_set_singleton_elastic_search_client()
{
$configPath = $this->getSourcePath('config/elasticsearch.php');
$configMock = Mockery::mock('Illuminate\Config\Repository', function (MockInterface $m) {
$m->shouldReceive('get')->with('elasticsearch')->andReturn([]);
$m->shouldReceive('get')->with('shift31::elasticsearch')->andReturn([]);
});
$filesMock = Mockery::mock('Illuminate\Filesystem\Filesystem', function (MockInterface $m) use ($configPath) {
$m->shouldReceive('getRequire')
->with($configPath)
->once()->andReturn([]);
});
$application = Mockery::mock('Illuminate\Foundation\Application', function (MockInterface $m) use ($configMock, $filesMock) {
$m->shouldReceive('booting')->once()->andReturnSelf();
$m->shouldReceive('offsetGet')->with('config')->andReturn($configMock);
$m->shouldReceive('offsetGet')->with('files')->andReturn($filesMock);
$m->shouldReceive('singleton')->with('elasticsearch',
Mockery::on(function ($closure) {
$this->assertInstanceOf('Elasticsearch\Client', $closure());
$application = Mockery::mock('Illuminate\Foundation\Application',
function (MockInterface $m) use ($configMock, $filesMock) {
$m->shouldReceive('booting')->once()->andReturnSelf();
$m->shouldReceive('offsetGet')->with('config')->andReturn($configMock);
$m->shouldReceive('offsetGet')->with('files')->andReturn($filesMock);
$m->shouldReceive('singleton')->with('elasticsearch',
Mockery::on(function ($closure) {
$this->assertInstanceOf('Elasticsearch\Client', $closure());

return true;
}))->once()->andReturnSelf();
});
return true;
}))->once()->andReturnSelf();
});
$provider = new ElasticsearchServiceProvider($application);
$this->assertNull($provider->register());
}
Expand Down

0 comments on commit 818c97f

Please sign in to comment.