1
0
Fork 0
composer/tests/Composer/Test/Repository/FilesystemRepositoryTest.php

112 lines
3.0 KiB
PHP
Raw Normal View History

<?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;
2013-09-25 08:14:42 +00:00
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(
2015-09-28 09:51:14 +00:00
array('name' => 'package1', 'version' => '1.0.0-beta', 'type' => 'vendor'),
)));
2011-10-02 18:18:57 +00:00
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(true));
$packages = $repository->getPackages();
2017-11-30 14:58:10 +00:00
$this->assertCount(1, $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();
}
2011-10-30 08:10:49 +00:00
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()));
2011-10-02 18:18:57 +00:00
$json
->expects($this->once())
->method('exists')
->will($this->returnValue(true));
$json
->expects($this->once())
->method('write')
->with(array(
2015-09-28 09:51:14 +00:00
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();
}
}