Skip to content

Commit

Permalink
Updated Unit Tests
Browse files Browse the repository at this point in the history
Changes:
- Replaced ‘cache/void-adapter’ with ‘tedivm/stash’;
- Cleaned up unit test bootstrap;
- Fixed ‘translator’ dependency for unit tests;
  • Loading branch information
mcaskill committed Feb 24, 2017
1 parent fa58885 commit fcf5ee2
Show file tree
Hide file tree
Showing 13 changed files with 123 additions and 161 deletions.
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"squizlabs/php_codesniffer": "^2.4",
"satooshi/php-coveralls": "^1.0",
"cache/void-adapter": "^0.3.0",
"tedivm/stash": "~0.14",
"mockery/mockery": "^0.9.6",
"locomotivemtl/charcoal-app": "^0.3"
},
Expand Down
1 change: 1 addition & 0 deletions tests/Charcoal/ContainerIntegrationTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ private function getContainer()
$container = new Container();

$provider->registerBaseServices($container);
$provider->registerTranslator($container);
$provider->registerMetadataLoader($container);
$provider->registerSourceFactory($container);
$provider->registerPropertyFactory($container);
Expand Down
41 changes: 35 additions & 6 deletions tests/Charcoal/ContainerProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
// From 'cache/void-adapter' (PSR-6)
use \Cache\Adapter\Void\VoidCachePool;

// From 'tedivm/stash' (PSR-6)
use \Stash\Pool;
use \Stash\Driver\Ephemeral;

// From Pimple
use \Pimple\Container;

Expand All @@ -21,8 +25,9 @@
use \Charcoal\Loader\CollectionLoader;
use \Charcoal\Source\DatabaseSource;

// From 'charcoal-translation'
use \Charcoal\Translation\TranslationString;
// From 'charcoal-translator'
use Charcoal\Translator\LocalesManager;
use Charcoal\Translator\Translator;

// From 'charcoal-app'
use \Charcoal\App\AppConfig;
Expand Down Expand Up @@ -98,7 +103,30 @@ public function registerLogger(Container $container)
public function registerCache(Container $container)
{
$container['cache'] = function ($container) {
return new VoidCachePool();
return new Pool(new Ephemeral());
};
}

/**
* Setup the application's translator service.
*
* @param Container $container A DI container.
* @return void
*/
public function registerTranslator(Container $container)
{
$container['language/manager'] = function (Container $container) {
return new LocalesManager([
'locales' => [
'en' => [ 'locale' => 'en-US' ]
]
]);
};

$container['translator'] = function (Container $container) {
return new Translator([
'manager' => $container['language/manager']
]);
};
}

Expand Down Expand Up @@ -181,9 +209,10 @@ public function registerPropertyFactory(Container $container)
'suffix' => 'Property'
],
'arguments' => [[
'container' => $container,
'database' => $container['database'],
'logger' => $container['logger']
'container' => $container,
'database' => $container['database'],
'logger' => $container['logger'],
'translator' => $container['translator']
]]
]);
};
Expand Down
3 changes: 0 additions & 3 deletions tests/Charcoal/Loader/CollectionLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@

use \ArrayIterator;

use \Psr\Log\NullLogger;
use \Cache\Adapter\Void\VoidCachePool;

use \Pimple\Container;

use \Charcoal\Config\GenericConfig;
Expand Down
37 changes: 9 additions & 28 deletions tests/Charcoal/Model/ModelValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,47 +12,28 @@
*/
class ModelValidatorTest extends \PHPUnit_Framework_TestCase
{
use \Charcoal\Tests\ContainerIntegrationTrait;

private $obj;
private $model;

protected function model()
{
$logger = new \Psr\Log\NullLogger();
$cache = new \Cache\Adapter\Void\VoidCachePool();

$metadataLoader = new \Charcoal\Model\Service\MetadataLoader([
'logger' => $logger,
'cache' => $cache,
'base_path' => __DIR__,
'paths' => [ 'metadata' ]
]);
$container = $this->getContainer();

$propertyFactory = new \Charcoal\Factory\GenericFactory([
'base_class' => \Charcoal\Property\PropertyInterface::class,
'default_class' => \Charcoal\Property\GenericProperty::class,
'resolver_options' => [
'prefix' => '\Charcoal\Property\\',
'suffix' => 'Property'
]
return new Model([
'container' => $container,
'logger' => $container['logger'],
'property_factory' => $container['property/factory'],
'metadata_loader' => $container['metadata/loader']
]);

$dependencies = [
'logger' => $logger,
'database' => new PDO('sqlite::memory:'),
'property_factory' => $propertyFactory,
'metadata_loader' => $metadataLoader
];

$propertyFactory->setArguments($dependencies);

return new Model($dependencies);
}

public function testConstructor()
{
$model = $this->model();
$obj = new ModelValidator($model);
$this->assertInstanceOf('\Charcoal\Model\ModelValidator', $obj);
$this->assertInstanceOf(ModelValidator::class, $obj);
}

public function testValidateModel()
Expand Down
Empty file.
32 changes: 0 additions & 32 deletions tests/Charcoal/Model/Service/CollectionLoaderTest.php

This file was deleted.

14 changes: 8 additions & 6 deletions tests/Charcoal/Model/Service/MetadataLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,31 @@

namespace Charcoal\Tests\Service;

use \Psr\Log\NullLogger;
use \Cache\Adapter\Void\VoidCachePool;

use \Charcoal\Model\Service\MetadataLoader;

/**
*
*/
class MetadataLoaderTest extends \PHPUnit_Framework_TestCase
{
use \Charcoal\Tests\ContainerIntegrationTrait;

public $obj;

public function setUp()
{
$container = $this->getContainer();

$this->obj = new MetadataLoader([
'logger' => new NullLogger(),
'logger' => $container['logger'],
'cache' => $container['cache'],
'base_path' => __DIR__,
'paths' => ['metadata'],
'cache' => new VoidCachePool()
'paths' => [ 'metadata' ]
]);
}

public function testLoadData()
{
$this->assertInstanceOf(MetadataLoader::class, $this->obj);
}
}
18 changes: 9 additions & 9 deletions tests/Charcoal/Model/Service/ModelLoaderBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

namespace Charcoal\Tests\Service;

use \Psr\Log\NullLogger;
use \Cache\Adapter\Void\VoidCachePool;

use \Charcoal\Factory\GenericFactory as Factory;

use \Charcoal\Model\Service\MetadataLoader;
Expand All @@ -16,29 +13,32 @@
*/
class ModelLoaderBuilderTest extends \PHPUnit_Framework_TestCase
{
use \Charcoal\Tests\ContainerIntegrationTrait;

public $obj;

public function setUp()
{
$container = $this->getContainer();

$metadataLoader = new MetadataLoader([
'logger' => new NullLogger(),
'logger' => $container['logger'],
'cache' => $container['cache'],
'base_path' => __DIR__,
'paths' => ['metadata'],
'cache' => new VoidCachePool()
'paths' => [ 'metadata' ]
]);

$factory = new Factory([
'arguments' => [[
'logger'=> new NullLogger(),
'logger' => $container['logger'],
'metadata_loader' => $metadataLoader
]]
]);

$this->obj = new ModelLoaderBuilder([
'factory' => $factory,
'logger' => new NullLogger(),
'cache' => new VoidCachePool()
'logger' => $container['logger'],
'cache' => $container['cache']
]);
}

Expand Down
20 changes: 10 additions & 10 deletions tests/Charcoal/Model/Service/ModelLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

namespace Charcoal\Tests\Model\Service;

use \Psr\Log\NullLogger;
use \Cache\Adapter\Void\VoidCachePool;

use \Charcoal\Factory\GenericFactory as Factory;

use \Charcoal\Model\Service\MetadataLoader;
Expand All @@ -15,30 +12,33 @@
*/
class ModelLoaderTest extends \PHPUnit_Framework_TestCase
{
use \Charcoal\Tests\ContainerIntegrationTrait;

public $obj;

public function setUp()
{
$container = $this->getContainer();

$metadataLoader = new MetadataLoader([
'logger' => new NullLogger(),
'logger' => $container['logger'],
'cache' => $container['cache'],
'base_path' => __DIR__,
'paths' => ['metadata'],
'cache' => new VoidCachePool()
'paths' => [ 'metadata' ]
]);

$factory = new Factory([
'arguments' => [[
'logger'=> new NullLogger(),
'logger' => $container['logger'],
'metadata_loader' => $metadataLoader
]]
]);

$this->obj = new ModelLoader([
'obj_type' => 'charcoal/model/model',
'factory' => $factory,
'logger' => new NullLogger(),
'cache' => new VoidCachePool()
'factory' => $factory,
'logger' => $container['logger'],
'cache' => $container['cache']
]);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,35 @@

use \PDO;

// From PSR-3
use \Psr\Log\NullLogger;

// From 'cache/void-adapter' (PSR-6)
use \Cache\Adapter\Void\VoidCachePool;

// From 'tedivm/stash' (PSR-6)
use \Stash\Pool;
use \Stash\Driver\Ephemeral;

// From Pimple
use \Pimple\Container;

// From 'charcoal-factory'
use \Charcoal\Factory\FactoryInterface;

// From 'charcoal-app'
use \Charcoal\App\AppConfig;

// From 'charcoal-view'
use \Charcoal\View\GenericView;
use \Charcoal\View\Php\PhpEngine;
use \Charcoal\View\Php\PhpLoader;

// From 'charcoal-translator'
use Charcoal\Translator\LocalesManager;
use Charcoal\Translator\Translator;

// From 'charcoal-core'
use \Charcoal\Model\ServiceProvider\ModelServiceProvider;
use \Charcoal\Model\Service\ModelBuilder;
use \Charcoal\Model\Service\ModelLoaderBuilder;
Expand Down Expand Up @@ -48,13 +64,14 @@ public function setUp()
* - logger
* - view
*
* @todo Use ContainerIntegrationTrait?
* @return Container
*/
private function container()
{
$container = new Container();

$container['cache'] = new VoidCachePool();
$container['cache'] = new Pool(new Ephemeral());
$container['config'] = new AppConfig([
'metadata' => [
'paths' => []
Expand All @@ -68,6 +85,7 @@ private function container()
'base_path' => dirname(__DIR__),
'paths' => [ 'views' ]
]);

$container['view/engine'] = new PhpEngine([
'logger' => $container['logger'],
'loader' => $container['view/loader']
Expand All @@ -77,6 +95,16 @@ private function container()
'logger' => $container['logger'],
'engine' => $container['view/engine']
]);

$container['language/manager'] = new LocalesManager([
'locales' => [
'en' => [ 'locale' => 'en-US' ]
]
]);
$container['translator'] = new Translator([
'manager' => $container['language/manager']
]);

return $container;
}

Expand Down
Loading

0 comments on commit fcf5ee2

Please sign in to comment.