You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.0 KiB
PHTML

<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Test\Repository;
use Composer\Repository\FilesystemRepository;
use Composer\TestCase;
class FilesystemRepositoryTest extends TestCase
{
public function testRepositoryRead()
{
$json = $this->createJsonFileMock();
$repository = new FilesystemRepository($json);
$json
->expects($this->once())
->method('read')
->will($this->returnValue(array(
9 years ago
array('name' => 'package1', 'version' => '1.0.0-beta', 'type' => 'vendor'),
)));
13 years ago
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(true));
$packages = $repository->getPackages();
$this->assertSame(1, count($packages));
$this->assertSame('package1', $packages[0]->getName());
$this->assertSame('1.0.0.0-beta', $packages[0]->getVersion());
$this->assertSame('vendor', $packages[0]->getType());
}
/**
* @expectedException \Composer\Repository\InvalidRepositoryException
*/
public function testCorruptedRepositoryFile()
{
$json = $this->createJsonFileMock();
$repository = new FilesystemRepository($json);
$json
->expects($this->once())
->method('read')
->will($this->returnValue('foo'));
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(true));
$repository->getPackages();
}
public function testUnexistentRepositoryFile()
{
$json = $this->createJsonFileMock();
$repository = new FilesystemRepository($json);
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(false));
$this->assertEquals(array(), $repository->getPackages());
}
public function testRepositoryWrite()
{
$json = $this->createJsonFileMock();
$repository = new FilesystemRepository($json);
$json
->expects($this->once())
->method('read')
->will($this->returnValue(array()));
13 years ago
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(true));
$json
->expects($this->once())
->method('write')
->with(array(
9 years ago
array('name' => 'mypkg', 'type' => 'library', 'version' => '0.1.10', 'version_normalized' => '0.1.10.0'),
));
$repository->addPackage($this->getPackage('mypkg', '0.1.10'));
$repository->write();
}
private function createJsonFileMock()
{
return $this->getMockBuilder('Composer\Json\JsonFile')
->disableOriginalConstructor()
->getMock();
}
}