예제 #1
0
 /**
  * @dataProvider getData
  *
  * @param array $data
  *
  * @return void
  */
 public function test_function(array $data)
 {
     // prepare
     $this->setExpectedException('DbMockLibrary\\Exceptions\\InvalidDependencyException', $data['errorMessage']);
     DependencyHandler::initDependencyHandler($data['data']);
     $reflection = new \ReflectionClass(DependencyHandler::getInstance());
     $validateCollectionsMethod = $reflection->getMethod('validate');
     $validateCollectionsMethod->setAccessible(true);
     // invoke logic & test
     $validateCollectionsMethod->invoke(DependencyHandler::getInstance(), $data['dependencies']);
 }
 /**
  * @param array $data
  *
  * @dataProvider getData
  *
  * @return void
  */
 public function test_function(array $data)
 {
     // prepare
     $this->setExpectedException('\\UnexpectedValueException', 'Invalid input');
     DependencyHandler::initDependencyHandler([]);
     $reflection = new \ReflectionClass('\\DbMockLibrary\\DependencyHandler');
     $dependenciesMethod = $reflection->getMethod('repackDependencies');
     $dependenciesMethod->setAccessible(true);
     // invoke logic & test
     $dependenciesMethod->invoke(DependencyHandler::getInstance(), $data['data']);
 }
 /**
  * @return void
  */
 public function test_function()
 {
     // prepare
     $extracted = [['a' => ['a1']], ['c' => ['c1']], ['d' => ['d1', 'd2']], ['b' => ['b1']], ['d' => ['d1']]];
     $expected = ['a' => ['i' => 0, 'a1'], 'c' => ['i' => 1, 'c1'], 'b' => ['i' => 3, 'b1'], 'd' => ['i' => 4, 'd1', 'd2', 'd1']];
     DependencyHandler::initDependencyHandler([]);
     $reflection = new \ReflectionClass('\\DbMockLibrary\\DependencyHandler');
     $dependenciesMethod = $reflection->getMethod('repackDependencies');
     $dependenciesMethod->setAccessible(true);
     // test
     $this->assertEquals($expected, $dependenciesMethod->invoke(DependencyHandler::getInstance(), $extracted));
 }
 /**
  * @return void
  */
 public function test_function()
 {
     // prepare
     $wanted = ['a' => ['a1']];
     $data = ['a' => ['a1' => ['aa1' => 1, 'aa2' => 2], 'a2' => ['aa1' => 3, 'aa2' => 4]], 'b' => ['b1' => ['bb1' => 1, 'bb2' => 2], 'b2' => ['bb1' => 3, 'bb2' => 4]], 'c' => ['c1' => ['cc1' => 1, 'cc2' => 2], 'c2' => ['cc1' => 3, 'cc2' => 4]], 'd' => ['d1' => ['dd1' => 1, 'dd2' => 2], 'd2' => ['dd1' => 3, 'dd2' => 2]]];
     $dependencies = [[DependencyHandler::DEPENDENT => ['b' => 'bb1'], DependencyHandler::ON => ['d' => 'dd1']], [DependencyHandler::DEPENDENT => ['a' => 'aa1'], DependencyHandler::ON => ['c' => 'cc1']], [DependencyHandler::DEPENDENT => ['c' => 'cc2'], DependencyHandler::ON => ['d' => 'dd2']], [DependencyHandler::DEPENDENT => ['a' => 'aa1'], DependencyHandler::ON => ['b' => 'bb1']]];
     $expected = [['d' => ['d1', 'd2']], ['b' => ['b1']], ['c' => ['c1']], ['a' => ['a1']]];
     DependencyHandler::initDependencyHandler($data, $dependencies);
     $reflection = new \ReflectionClass('\\DbMockLibrary\\DependencyHandler');
     $dependenciesMethod = $reflection->getMethod('prepareDependencies');
     $dependenciesMethod->setAccessible(true);
     // test
     $this->assertEquals($expected, $dependenciesMethod->invoke(DependencyHandler::getInstance(), $wanted));
 }
 /**
  * @return void
  */
 public function test_function()
 {
     // invoke logic
     $dataArray = ['foo1' => ['bar1' => ['baz1' => 1]], 'foo2' => ['bar2' => ['baz2' => 2]]];
     $dependencies = [[DependencyHandler::DEPENDENT => ['foo1' => 'baz1'], DependencyHandler::ON => ['foo2' => 'baz2']]];
     DependencyHandler::initDependencyHandler($dataArray, $dependencies);
     // prepare
     $reflection = new \ReflectionClass('\\DbMockLibrary\\DependencyHandler');
     $staticProperties = $reflection->getStaticProperties();
     $dependenciesProperty = $reflection->getProperty('dependencies');
     $dependenciesProperty->setAccessible(true);
     // test
     $this->assertInstanceOf('\\DbMockLibrary\\DependencyHandler', $staticProperties['instance']);
     $this->assertEquals($dependencies, $dependenciesProperty->getValue(DependencyHandler::getInstance()));
 }
예제 #6
0
<?php

require 'vendor/autoload.php';
use DbMockLibrary\DependencyHandler;
$data = ['a' => ['a1' => ['aa1' => 1, 'aa2' => 2], 'a2' => ['aa1' => 3, 'aa2' => 4]], 'b' => ['b1' => ['bb1' => 1, 'bb2' => 2], 'b2' => ['bb1' => 3, 'bb2' => 4]], 'c' => ['c1' => ['cc1' => 1, 'cc2' => 2], 'c2' => ['cc1' => 3, 'cc2' => 4]], 'd' => ['d1' => ['dd1' => 1, 'dd2' => 2], 'd2' => ['dd1' => 3, 'dd2' => 2]]];
$dependencies = [[DependencyHandler::DEPENDENT => ['b' => 'bb1'], DependencyHandler::ON => ['d' => 'dd1']], [DependencyHandler::DEPENDENT => ['a' => 'aa1'], DependencyHandler::ON => ['c' => 'cc1']], [DependencyHandler::DEPENDENT => ['c' => 'cc2'], DependencyHandler::ON => ['d' => 'dd2']], [DependencyHandler::DEPENDENT => ['a' => 'aa1'], DependencyHandler::ON => ['b' => 'bb1']]];
$wanted = ['a' => ['a1']];
DependencyHandler::initDependencyHandler($data, $dependencies);
var_dump(DependencyHandler::getInstance()->prepareDependencies($wanted));