Vendor update && Started using DoctrineMigrations
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\Aop;
|
||||
|
||||
use JMS\AopBundle\Aop\PointcutContainer;
|
||||
|
||||
use JMS\AopBundle\Aop\InterceptorLoader;
|
||||
|
||||
class InterceptorLoaderTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testLoadInterceptors()
|
||||
{
|
||||
$interceptor = $this->getMock('CG\Proxy\MethodInterceptorInterface');
|
||||
|
||||
list($loader, $container) = $this->getLoader(array(
|
||||
'JMS\AopBundle\Tests\Aop\InterceptorLoaderTestClass' => array(
|
||||
'foo' => array('foo'),
|
||||
),
|
||||
));
|
||||
|
||||
$container
|
||||
->expects($this->once())
|
||||
->method('get')
|
||||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue($interceptor))
|
||||
;
|
||||
|
||||
$method = new \ReflectionMethod('JMS\AopBundle\Tests\Aop\InterceptorLoaderTestClass', 'foo');
|
||||
|
||||
$this->assertSame(array($interceptor), $loader->loadInterceptors($method));
|
||||
// yes, twice
|
||||
$this->assertSame(array($interceptor), $loader->loadInterceptors($method));
|
||||
}
|
||||
|
||||
private function getLoader(array $interceptors = array())
|
||||
{
|
||||
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||
|
||||
return array(new InterceptorLoader($container, $interceptors), $container);
|
||||
}
|
||||
}
|
||||
|
||||
class InterceptorLoaderTestClass
|
||||
{
|
||||
public function foo()
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\Aop;
|
||||
|
||||
use JMS\AopBundle\Aop\RegexPointcut;
|
||||
|
||||
class RegexPointcutTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testMatchesClass()
|
||||
{
|
||||
$pointcut = new RegexPointcut('');
|
||||
$this->assertTrue($pointcut->matchesClass(new \ReflectionClass('stdClass')));
|
||||
}
|
||||
|
||||
public function testMatchesMethod()
|
||||
{
|
||||
$pointcut = new RegexPointcut('foo$');
|
||||
|
||||
$method = new \ReflectionMethod('JMS\AopBundle\Tests\Aop\RegexPointcutTestClass', 'foo');
|
||||
$this->assertTrue($pointcut->matchesMethod($method));
|
||||
|
||||
$method = new \ReflectionMethod('JMS\AopBundle\Tests\Aop\RegexPointcutTestClass', 'bar');
|
||||
$this->assertFalse($pointcut->matchesMethod($method));
|
||||
}
|
||||
}
|
||||
|
||||
class RegexPointcutTestClass
|
||||
{
|
||||
public function foo() {}
|
||||
public function bar() {}
|
||||
}
|
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture;
|
||||
|
||||
use CG\Proxy\MethodInvocation;
|
||||
use CG\Proxy\MethodInterceptorInterface;
|
||||
|
||||
class LoggingInterceptor implements MethodInterceptorInterface
|
||||
{
|
||||
private $log = array();
|
||||
|
||||
public function getLog()
|
||||
{
|
||||
return $this->log;
|
||||
}
|
||||
|
||||
public function intercept(MethodInvocation $invocation)
|
||||
{
|
||||
$this->log[] = $invocation->reflection->name;
|
||||
|
||||
return $invocation->proceed();
|
||||
}
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture;
|
||||
|
||||
use JMS\AopBundle\Aop\PointcutInterface;
|
||||
|
||||
class LoggingPointcut implements PointcutInterface
|
||||
{
|
||||
public function matchesClass(\ReflectionClass $class)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function matchesMethod(\ReflectionMethod $method)
|
||||
{
|
||||
return false !== strpos($method->name, 'delete');
|
||||
}
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture;
|
||||
|
||||
class TestService
|
||||
{
|
||||
public function add()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright 2011 Johannes M. Schmitt <schmittjoh@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
namespace JMS\AopBundle\Tests\DependencyInjection\Compiler;
|
||||
|
||||
use JMS\AopBundle\Exception\RuntimeException;
|
||||
use Symfony\Component\DependencyInjection\Compiler\ResolveParameterPlaceHoldersPass;
|
||||
use JMS\AopBundle\DependencyInjection\JMSAopExtension;
|
||||
use JMS\AopBundle\DependencyInjection\Compiler\PointcutMatchingPass;
|
||||
use Symfony\Component\HttpKernel\Util\Filesystem;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
||||
class PointcutMatchingPassTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $cacheDir;
|
||||
private $fs;
|
||||
|
||||
public function testProcess()
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
|
||||
$container
|
||||
->register('pointcut', 'JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture\LoggingPointcut')
|
||||
->addTag('jms_aop.pointcut', array('interceptor' => 'interceptor'))
|
||||
;
|
||||
$container
|
||||
->register('interceptor', 'JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture\LoggingInterceptor')
|
||||
;
|
||||
$container
|
||||
->register('test', 'JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture\TestService')
|
||||
;
|
||||
|
||||
$this->process($container);
|
||||
|
||||
$service = $container->get('test');
|
||||
$this->assertInstanceOf('JMS\AopBundle\Tests\DependencyInjection\Compiler\Fixture\TestService', $service);
|
||||
$this->assertTrue($service->add());
|
||||
$this->assertTrue($service->delete());
|
||||
$this->assertEquals(array('delete'), $container->get('interceptor')->getLog());
|
||||
}
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->cacheDir = sys_get_temp_dir().'/jms_aop_test';
|
||||
$this->fs = new Filesystem();
|
||||
|
||||
if (is_dir($this->cacheDir)) {
|
||||
$this->fs->remove($this->cacheDir);
|
||||
}
|
||||
|
||||
if (false === @mkdir($this->cacheDir, 0777, true)) {
|
||||
throw new RuntimeException(sprintf('Could not create cache dir "%s".', $this->cacheDir));
|
||||
}
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
$this->fs->remove($this->cacheDir);
|
||||
}
|
||||
|
||||
private function getContainer()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
|
||||
$extension = new JMSAopExtension();
|
||||
$extension->load(array(array(
|
||||
'cache_dir' => $this->cacheDir,
|
||||
)), $container);
|
||||
|
||||
return $container;
|
||||
}
|
||||
|
||||
private function process(ContainerBuilder $container)
|
||||
{
|
||||
$pass = new ResolveParameterPlaceHoldersPass();
|
||||
$pass->process($container);
|
||||
|
||||
$pass = new PointcutMatchingPass();
|
||||
$pass->process($container);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user