Source of file PackageTest.php
Size: 3,215 Bytes - Last Modified: 2021-12-24T06:48:16+00:00
/var/www/docs.ssmods.com/process/src/tests/Model/PackageTest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?php namespace BringYourOwnIdeas\Maintenance\Tests\Model; use BringYourOwnIdeas\Maintenance\Model\Package; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\ArrayList; use SilverStripe\View\ArrayData; class PackageTest extends SapphireTest { public function providePackageNamesAndTitles() { return [ ['pretendvendor/silverstripe-prefixedpackage', 'prefixedpackage'], ['pretend-vendor/silverstripe-hyphen-package', 'hyphen-package'], ['pretendvendor/somepackage', 'somepackage'], ['pretend-vendor/silverstripepackage', 'silverstripepackage'], ['pretendvendor/hyphenated-package', 'hyphenated-package'], ['silverstripe/module', 'module'], ['silverstripe/some-thing', 'some-thing'], ['silverstripe/silverstripe-silverstripe-thing', 'silverstripe-thing'], ['silverstripe-themes/silverstripe-theme', 'theme'], ['silverstripe-themes/silverstripe-hyphenated-theme', 'hyphenated-theme'], ]; } /** * @dataProvider providePackageNamesAndTitles * * Ensure the vendor and 'silverstripe-' is stripped from module names. */ public function testTitleFormatsNameCorrectly($name, $title) { $testPackage = new Package([ 'Name' => $name ]); $this->assertEquals($title, $testPackage->getTitle()); } /** * Ensure that the definition key is always the output title * and that the value is set as the Type. */ public function testBadges() { $testPackage = new Package(); // setBadges to test $setBadges = [ 'A good Badge' => 'good', 'A typeless badge' => null ]; $testPackage->setBadges($setBadges); // test addBadge appends badge to the stored list $addedBadgeTitle = 'Integer badge'; $addedBadgeValue = 3; $testPackage->addBadge($addedBadgeTitle, $addedBadgeValue); // tests adding badges via getBadges optional parameter $extraBadge = ['Extra' => 'warning']; // combine the input data to test outputs against $badgeControlSample = array_merge($setBadges, [$addedBadgeTitle => $addedBadgeValue], $extraBadge); $badgeViewData = $testPackage->getBadges($extraBadge); // Test expected data structure is correct $this->assertInstanceOf(ArrayList::class, $badgeViewData); $this->assertContainsOnlyInstancesOf(ArrayData::class, $badgeViewData->toArray()); // Test that the output format is correct // and that all our input is output reset($badgeControlSample); foreach ($badgeViewData as $badgeData) { $title = key($badgeControlSample); $type = current($badgeControlSample); $this->assertSame( [ 'Title' => $title, 'Type' => $type, ], $badgeData->toMap() ); // badgeControlSample is a keyed array, so shift the pointer manually // (because we can't lookup by index) next($badgeControlSample); } } } |