ArrayDumperTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /*
  3. * This file is part of Composer.
  4. *
  5. * (c) Nils Adermann <naderman@naderman.de>
  6. * Jordi Boggiano <j.boggiano@seld.be>
  7. *
  8. * For the full copyright and license information, please view the LICENSE
  9. * file that was distributed with this source code.
  10. */
  11. namespace Composer\Test\Package\Dumper;
  12. use Composer\Package\Dumper\ArrayDumper;
  13. use Composer\Package\MemoryPackage;
  14. class ArrayDumperTest extends \PHPUnit_Framework_TestCase
  15. {
  16. public function setUp()
  17. {
  18. $this->dumper = new ArrayDumper();
  19. }
  20. public function testRequiredInformations()
  21. {
  22. $package = new MemoryPackage('foo', '1.0.0.0', '1.0');
  23. $config = $this->dumper->dump($package);
  24. $this->assertEquals(array('name', 'version', 'version_normalized', 'type', 'names'), array_keys($config));
  25. }
  26. /**
  27. * @dataProvider getKeys
  28. */
  29. public function testKeys($key, $value, $expectedValue = null, $method = null)
  30. {
  31. $package = new MemoryPackage('foo', '1.0.0.0', '1.0');
  32. $setter = 'set'.ucfirst($method ?: $key);
  33. $package->$setter($value);
  34. $config = $this->dumper->dump($package);
  35. $this->assertArrayHasKey($key, $config);
  36. $expectedValue = $expectedValue ?: $value;
  37. $this->assertSame($expectedValue, $config[$key]);
  38. }
  39. public function getKeys()
  40. {
  41. return array(
  42. array('time', new \DateTime('2012-02-01'), '2012-02-01 00:00:00', 'ReleaseDate'),
  43. array('authors', array('Nils Adermann <naderman@naderman.de>', 'Jordi Boggiano <j.boggiano@seld.be>')),
  44. array('homepage', 'http://getcomposer.org'),
  45. array('description', 'Package Manager'),
  46. array('keywords', array('package', 'dependency', 'autoload')),
  47. array('bin', array('bin/composer'), null, 'binaries'),
  48. array('license', array('MIT')),
  49. array('autoload', array('psr-0' => array('Composer' => 'src/'))),
  50. array('repositories', array('packagist' => false)),
  51. array('scripts', array('post-update-cmd' => 'MyVendor\\MyClass::postUpdate')),
  52. array('extra', array('class' => 'MyVendor\\Installer')),
  53. );
  54. }
  55. }