PHP Classes

File: tests/Injector/ClassProfileTest.php

Recommend this page to a friend!
  Classes of Emmanuel Antico   Injector   tests/Injector/ClassProfileTest.php   Download  
File: tests/Injector/ClassProfileTest.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: Injector
Inject dependencies defined in annotation comments
Author: By
Last change:
Date: 10 years ago
Size: 3,021 bytes
 

Contents

Class file image Download
<?php
use Injector\ClassProfile;

/**
 *
 * @author emaphp
 * @group profile
 */
class ClassProfileTest extends \PHPUnit_Framework_TestCase {
    public function
testComponentA() {
       
$profile = new ClassProfile('Acme\Components\TestComponentA');
       
$this->assertInstanceOf('\\ReflectionClass', $profile->class);
       
$this->assertEquals('Acme\Components\TestComponentA', $profile->className);
       
$this->assertInstanceOf('\\ReflectionMethod', $profile->constructor);
       
$this->assertArrayHasKey('service', $profile->constructorParams);
       
$this->assertEquals('mail', $profile->constructorParams['service']);
    }
   
    public function
testComponentB() {
       
$profile = new ClassProfile('Acme\Components\TestComponentB');
       
$this->assertInstanceOf('\\ReflectionClass', $profile->class);
       
$this->assertEquals('Acme\Components\TestComponentB', $profile->className);
       
$this->assertArrayHasKey('mail', $profile->properties);
       
$this->assertEquals('mail', $profile->properties['mail']);
       
$this->assertArrayHasKey('mail', $profile->reflectionProperties);
       
$this->assertInstanceOf('\\ReflectionProperty', $profile->reflectionProperties['mail']);
    }
       
    public function
testComponentC() {
       
$profile = new ClassProfile('Acme\Components\TestComponentC');
       
$this->assertFalse($profile->isStrict);
       
$this->assertInternalType('array', $profile->providers);
       
$this->assertContains('Acme\Providers\MailServiceProvider', $profile->providers);
       
$this->assertArrayHasKey('service', $profile->constructorParams);
       
$this->assertEquals('mail', $profile->constructorParams['service']);
       
$this->assertArrayHasKey('http', $profile->constructorParams);
       
$this->assertEquals('http', $profile->constructorParams['http']);
    }
   
    public function
testComponentF() {
       
$profile = new ClassProfile('Acme\Components\TestComponentF');
       
$this->assertTrue($profile->isStrict);
    }
   
    public function
testComponentH() {
       
$profile = new ClassProfile('Acme\Components\TestComponentH');
       
$this->assertContains('Acme\Providers\MailServiceProvider', $profile->providers);
       
$this->assertContains('Acme\Providers\HTTPServiceProvider', $profile->providers);
    }
   
    public function
testComponentZ() {
       
$profile = new ClassProfile('Acme\Components\TestComponentZ');
       
$this->assertArrayHasKey('service', $profile->constructorParams);
       
$this->assertEquals('mail', $profile->constructorParams['service']);
       
$this->assertArrayHasKey('http', $profile->properties);
       
$this->assertEquals('http', $profile->properties['http']);
       
$this->assertArrayHasKey('http', $profile->reflectionProperties);
       
$this->assertInstanceOf('\\ReflectionProperty', $profile->reflectionProperties['http']);
    }
   
    public function
testComponentY() {
       
$profile = new ClassProfile('Acme\Components\TestComponentY');
       
$this->assertNotEmpty($profile->providers);
       
$this->assertContains('Acme\Providers\AllServiceProvider', $profile->providers);
    }
   
    public function
testComponentX() {
       
$profile = new ClassProfile('Acme\Components\TestComponentX');
       
$this->assertEmpty($profile->providers);
    }
}