silverstripe-framework/tests/php/Core/Manifest/ClassContentRemoverTest.php
2017-03-06 10:35:25 +00:00

53 lines
1.8 KiB
PHP

<?php
namespace SilverStripe\Core\Tests\Manifest;
use SilverStripe\Core\Manifest\ClassContentRemover;
use SilverStripe\Dev\SapphireTest;
class ClassContentRemoverTest extends SapphireTest
{
public function testRemoveClassContent()
{
$filePath = dirname(__FILE__) . '/fixtures/classcontentremover/ContentRemoverTestA.php';
$cleanContents = ClassContentRemover::remove_class_content($filePath);
$expected = '<?php
namespace TestNamespace\\Testing; use TestNamespace\\{Test1, Test2, Test3}; class MyTest extends Test1 implements Test2 {}';
$this->assertEquals($expected, $cleanContents);
}
public function testRemoveClassContentConditional()
{
$filePath = dirname(__FILE__) . '/fixtures/classcontentremover/ContentRemoverTestB.php';
$cleanContents = ClassContentRemover::remove_class_content($filePath);
$expected = '<?php
namespace TestNamespace\\Testing; use TestNamespace\\{Test1, Test2, Test3}; if (class_exists(\'Class\')) { class MyTest extends Test1 implements Test2 {} class MyTest2 {} }';
$this->assertEquals($expected, $cleanContents);
}
public function testRemoveClassContentNoClass()
{
$filePath = dirname(__FILE__) . '/fixtures/classcontentremover/ContentRemoverTestC.php';
$cleanContents = ClassContentRemover::remove_class_content($filePath);
$this->assertEmpty($cleanContents);
}
public function testRemoveClassContentSillyMethod()
{
$filePath = dirname(__FILE__) . '/fixtures/classcontentremover/ContentRemoverTestD.php';
$cleanContents = ClassContentRemover::remove_class_content($filePath);
$expected = '<?php
class SomeClass {} class AnotherClass {}';
$this->assertEquals($expected, $cleanContents);
}
}