MemoryPackageTest.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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;
  12. use Composer\Package\MemoryPackage;
  13. class MemoryPackageTest extends \PHPUnit_Framework_TestCase
  14. {
  15. /**
  16. * Memory package naming, versioning, and marshalling semantics provider
  17. *
  18. * demonstrates several versioning schemes
  19. */
  20. public function ProviderVersioningSchemes()
  21. {
  22. $provider[] = array('foo', '1-beta', 'foo-1-beta');
  23. $provider[] = array('node', '0.5.6', 'node-0.5.6');
  24. $provider[] = array('li3', '0.10', 'li3-0.10');
  25. $provider[] = array('mongodb_odm', '1.0.0BETA3', 'mongodb_odm-1.0.0BETA3');
  26. $provider[] = array('DoctrineCommon', '2.2.0-DEV', 'doctrinecommon-2.2.0-DEV');
  27. return $provider;
  28. }
  29. /**
  30. * Tests memory package naming semantics
  31. *
  32. * @dataProvider ProviderVersioningSchemes
  33. *
  34. * @param string $name
  35. * @param string $version
  36. */
  37. public function testMemoryPackageHasExpectedNamingSemantics($name, $version)
  38. {
  39. $package = new MemoryPackage($name, $version);
  40. $this->assertEquals(strtolower($name), $package->getName());
  41. }
  42. /**
  43. * Tests memory package versioning semantics
  44. *
  45. * @dataProvider ProviderVersioningSchemes
  46. *
  47. * @param string $name
  48. * @param string $version
  49. */
  50. public function testMemoryPackageHasExpectedVersioningSemantics($name, $version)
  51. {
  52. $package = new MemoryPackage($name, $version);
  53. $this->assertEquals($version, $package->getVersion());
  54. }
  55. /**
  56. * Tests memory package marshalling/serialization semantics
  57. *
  58. * @dataProvider ProviderVersioningSchemes
  59. *
  60. * @param string $name
  61. * @param string $version
  62. * @param string $marshalled
  63. */
  64. public function testMemoryPackageHasExpectedMarshallingSemantics($name, $version, $marshalled)
  65. {
  66. $package = new MemoryPackage($name, $version);
  67. $this->assertEquals($marshalled, (string) $package);
  68. }
  69. }