You are here

class FactoryTest in Zircon Profile 8

Same name in this branch
  1. 8 vendor/sebastian/comparator/tests/FactoryTest.php \SebastianBergmann\Comparator\FactoryTest
  2. 8 core/modules/system/src/Tests/Plugin/FactoryTest.php \Drupal\system\Tests\Plugin\FactoryTest
Same name and namespace in other branches
  1. 8.0 vendor/sebastian/comparator/tests/FactoryTest.php \SebastianBergmann\Comparator\FactoryTest

@coversDefaultClass SebastianBergmann\Comparator\Factory

Hierarchy

  • class \SebastianBergmann\Comparator\FactoryTest extends \SebastianBergmann\Comparator\PHPUnit_Framework_TestCase

Expanded class hierarchy of FactoryTest

File

vendor/sebastian/comparator/tests/FactoryTest.php, line 17

Namespace

SebastianBergmann\Comparator
View source
class FactoryTest extends \PHPUnit_Framework_TestCase {
  public function instanceProvider() {
    $tmpfile = tmpfile();
    return array(
      array(
        NULL,
        NULL,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        NULL,
        TRUE,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        TRUE,
        NULL,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        TRUE,
        TRUE,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        FALSE,
        FALSE,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        TRUE,
        FALSE,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        FALSE,
        TRUE,
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        '',
        '',
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        '0',
        '0',
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        '0',
        0,
        'SebastianBergmann\\Comparator\\NumericComparator',
      ),
      array(
        0,
        '0',
        'SebastianBergmann\\Comparator\\NumericComparator',
      ),
      array(
        0,
        0,
        'SebastianBergmann\\Comparator\\NumericComparator',
      ),
      array(
        1.0,
        0,
        'SebastianBergmann\\Comparator\\DoubleComparator',
      ),
      array(
        0,
        1.0,
        'SebastianBergmann\\Comparator\\DoubleComparator',
      ),
      array(
        1.0,
        1.0,
        'SebastianBergmann\\Comparator\\DoubleComparator',
      ),
      array(
        array(
          1,
        ),
        array(
          1,
        ),
        'SebastianBergmann\\Comparator\\ArrayComparator',
      ),
      array(
        $tmpfile,
        $tmpfile,
        'SebastianBergmann\\Comparator\\ResourceComparator',
      ),
      array(
        new \stdClass(),
        new \stdClass(),
        'SebastianBergmann\\Comparator\\ObjectComparator',
      ),
      array(
        new \DateTime(),
        new \DateTime(),
        'SebastianBergmann\\Comparator\\DateTimeComparator',
      ),
      array(
        new \SplObjectStorage(),
        new \SplObjectStorage(),
        'SebastianBergmann\\Comparator\\SplObjectStorageComparator',
      ),
      array(
        new \Exception(),
        new \Exception(),
        'SebastianBergmann\\Comparator\\ExceptionComparator',
      ),
      array(
        new \DOMDocument(),
        new \DOMDocument(),
        'SebastianBergmann\\Comparator\\DOMNodeComparator',
      ),
      // mixed types
      array(
        $tmpfile,
        array(
          1,
        ),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        array(
          1,
        ),
        $tmpfile,
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        $tmpfile,
        '1',
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        '1',
        $tmpfile,
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        $tmpfile,
        new \stdClass(),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        new \stdClass(),
        $tmpfile,
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        new \stdClass(),
        array(
          1,
        ),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        array(
          1,
        ),
        new \stdClass(),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        new \stdClass(),
        '1',
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        '1',
        new \stdClass(),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        new ClassWithToString(),
        '1',
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        '1',
        new ClassWithToString(),
        'SebastianBergmann\\Comparator\\ScalarComparator',
      ),
      array(
        1.0,
        new \stdClass(),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        new \stdClass(),
        1.0,
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        1.0,
        array(
          1,
        ),
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
      array(
        array(
          1,
        ),
        1.0,
        'SebastianBergmann\\Comparator\\TypeComparator',
      ),
    );
  }

  /**
   * @dataProvider instanceProvider
   * @covers       ::getComparatorFor
   * @covers       ::__construct
   */
  public function testGetComparatorFor($a, $b, $expected) {
    $factory = new Factory();
    $actual = $factory
      ->getComparatorFor($a, $b);
    $this
      ->assertInstanceOf($expected, $actual);
  }

  /**
   * @covers ::register
   */
  public function testRegister() {
    $comparator = new TestClassComparator();
    $factory = new Factory();
    $factory
      ->register($comparator);
    $a = new TestClass();
    $b = new TestClass();
    $expected = 'SebastianBergmann\\Comparator\\TestClassComparator';
    $actual = $factory
      ->getComparatorFor($a, $b);
    $factory
      ->unregister($comparator);
    $this
      ->assertInstanceOf($expected, $actual);
  }

  /**
   * @covers ::unregister
   */
  public function testUnregister() {
    $comparator = new TestClassComparator();
    $factory = new Factory();
    $factory
      ->register($comparator);
    $factory
      ->unregister($comparator);
    $a = new TestClass();
    $b = new TestClass();
    $expected = 'SebastianBergmann\\Comparator\\ObjectComparator';
    $actual = $factory
      ->getComparatorFor($a, $b);
    $this
      ->assertInstanceOf($expected, $actual);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FactoryTest::instanceProvider public function
FactoryTest::testGetComparatorFor public function @dataProvider instanceProvider @covers ::getComparatorFor @covers ::__construct
FactoryTest::testRegister public function @covers ::register
FactoryTest::testUnregister public function @covers ::unregister