Source of file UpdateCheckerTest.php
Size: 2,286 Bytes - Last Modified: 2021-12-23T10:37:59+00:00
/var/www/docs.ssmods.com/process/src/tests/UpdateCheckerTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php namespace BringYourOwnIdeas\UpdateChecker\Tests; use BringYourOwnIdeas\Maintenance\Util\ComposerLoader; use BringYourOwnIdeas\UpdateChecker\UpdateChecker; use Composer\Composer; use PHPUnit_Framework_TestCase; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; /** * @mixin PHPUnit_Framework_TestCase */ class UpdateCheckerTest extends SapphireTest { protected $usesDatabase = true; /** * @var UpdateChecker */ protected $updateChecker; protected function setUp(): void { parent::setUp(); // Mock composer and composer loader $composer = $this->getMockBuilder(Composer::Class)->getMock(); $composerLoader = $this->getMockBuilder(ComposerLoader::class) ->disableOriginalConstructor() ->setMethods(['getComposer']) ->getMock(); $composerLoader->expects($this->once())->method('getComposer')->will($this->returnValue($composer)); Injector::inst()->registerService($composerLoader, ComposerLoader::class); // Partially mock UpdateChecker $this->updateChecker = $this->getMockBuilder(UpdateChecker::class) ->setMethods(['findLatestPackage']) ->getMock(); } public function testCheckForUpdates() { $mockPackage = new \Composer\Package\Package('foo/bar', '2.3.4.0', '2.3.4'); $mockPackage->setSourceReference('foobar123'); // No available update $this->updateChecker->expects($this->at(0)) ->method('findLatestPackage') ->will($this->returnValue(false)); // There is latest version though $this->updateChecker->expects($this->at(1)) ->method('findLatestPackage') ->will($this->returnValue($mockPackage)); $result = $this->updateChecker->checkForUpdates($mockPackage, '~1.2.0'); $this->assertArrayNotHasKey('AvailableVersion', $result, 'No available update is recorded'); $this->assertArrayNotHasKey('AvailableHash', $result, 'No available update is recorded'); $this->assertSame('2.3.4', $result['LatestVersion'], 'Latest version is returned'); $this->assertSame('foobar123', $result['LatestHash'], 'Hash of latest version is returned'); } } |