MemoryPackageTest.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. * Wil Moore III <wil.moore@wilmoore.com>
  8. *
  9. * For the full copyright and license information, please view the LICENSE
  10. * file that was distributed with this source code.
  11. */
  12. namespace Composer\Test\Package;
  13. use Composer\Package\MemoryPackage;
  14. class MemoryPackageTest extends \PHPUnit_Framework_TestCase
  15. {
  16. /**
  17. * Memory package naming, versioning, and marshalling semantics provider
  18. *
  19. * demonstrates several versioning schemes
  20. *
  21. * @todo if all package types share the same semantics, we could use a data provider
  22. * to test them all in a single suite
  23. */
  24. public function provider_memory_package_semantics()
  25. {
  26. $provider[] = array('foo', '1-beta', 'foo-1-beta');
  27. $provider[] = array('node', '0.5.6', 'node-0.5.6');
  28. $provider[] = array('li3', '0.10', 'li3-0.10');
  29. $provider[] = array('mongodb_odm', '1.0.0BETA3', 'mongodb_odm-1.0.0BETA3');
  30. $provider[] = array('DoctrineCommon', '2.2.0-DEV', 'doctrinecommon-2.2.0-DEV');
  31. return $provider;
  32. }
  33. /**
  34. * Tests memory package naming semantics
  35. *
  36. * @test
  37. * @dataProvider provider_memory_package_semantics
  38. */
  39. public function Memory_Package_Has_Expected_Naming_Semantics($name, $version, $marshalled)
  40. {
  41. $package = new MemoryPackage($name, $version);
  42. $this->assertEquals(strtolower($name), $package->getName());
  43. }
  44. /**
  45. * Tests memory package versioning semantics
  46. *
  47. * @test
  48. * @dataProvider provider_memory_package_semantics
  49. */
  50. public function Memory_Package_Has_Expected_Versioning_Semantics($name, $version, $marshalled)
  51. {
  52. $package = new MemoryPackage($name, $version);
  53. $this->assertEquals($version, $package->getVersion());
  54. }
  55. /**
  56. * Tests memory package marshalling/serialization semantics
  57. *
  58. * @test
  59. * @dataProvider provider_memory_package_semantics
  60. */
  61. public function Memory_Package_Has_Expected_Marshalling_Semantics($name, $version, $marshalled)
  62. {
  63. $package = new MemoryPackage($name, $version);
  64. $this->assertEquals($marshalled, (string) $package);
  65. }
  66. }