Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CarnetApp/CarnetNextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhie <phie@phie.ovh>2018-08-21 18:39:12 +0300
committerPhie <phie@phie.ovh>2018-08-21 18:39:12 +0300
commit7d24cc0120859fc4e46b301c08effc97ddfbb1bb (patch)
tree94b5b52074022ceccd4c91073f217feaec38ca40 /vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
first commit for Carnet NC server
Diffstat (limited to 'vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php')
-rw-r--r--vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php195
1 files changed, 195 insertions, 0 deletions
diff --git a/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php b/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
new file mode 100644
index 0000000..9e8cb24
--- /dev/null
+++ b/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
@@ -0,0 +1,195 @@
+<?php
+/*
+ * This file is part of php-token-stream.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use PHPUnit\Framework\TestCase;
+
+class PHP_Token_InterfaceTest extends TestCase
+{
+ /**
+ * @var PHP_Token_CLASS
+ */
+ private $class;
+
+ /**
+ * @var PHP_Token_INTERFACE[]
+ */
+ private $interfaces;
+
+ protected function setUp()
+ {
+ $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source4.php');
+ $i = 0;
+
+ foreach ($ts as $token) {
+ if ($token instanceof PHP_Token_CLASS) {
+ $this->class = $token;
+ } elseif ($token instanceof PHP_Token_INTERFACE) {
+ $this->interfaces[$i] = $token;
+ $i++;
+ }
+ }
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getName
+ */
+ public function testGetName()
+ {
+ $this->assertEquals(
+ 'iTemplate', $this->interfaces[0]->getName()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getParent
+ */
+ public function testGetParentNotExists()
+ {
+ $this->assertFalse(
+ $this->interfaces[0]->getParent()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::hasParent
+ */
+ public function testHasParentNotExists()
+ {
+ $this->assertFalse(
+ $this->interfaces[0]->hasParent()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getParent
+ */
+ public function testGetParentExists()
+ {
+ $this->assertEquals(
+ 'a', $this->interfaces[2]->getParent()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::hasParent
+ */
+ public function testHasParentExists()
+ {
+ $this->assertTrue(
+ $this->interfaces[2]->hasParent()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getInterfaces
+ */
+ public function testGetInterfacesExists()
+ {
+ $this->assertEquals(
+ ['b'],
+ $this->class->getInterfaces()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::hasInterfaces
+ */
+ public function testHasInterfacesExists()
+ {
+ $this->assertTrue(
+ $this->class->hasInterfaces()
+ );
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getPackage
+ */
+ public function testGetPackageNamespace()
+ {
+ $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php');
+ foreach ($tokenStream as $token) {
+ if ($token instanceof PHP_Token_INTERFACE) {
+ $package = $token->getPackage();
+ $this->assertSame('Foo\\Bar', $package['namespace']);
+ }
+ }
+ }
+
+
+ public function provideFilesWithClassesWithinMultipleNamespaces()
+ {
+ return [
+ [TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingBraces.php'],
+ [TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingNonBraceSyntax.php'],
+ ];
+ }
+
+ /**
+ * @dataProvider provideFilesWithClassesWithinMultipleNamespaces
+ * @covers PHP_Token_INTERFACE::getPackage
+ */
+ public function testGetPackageNamespaceForFileWithMultipleNamespaces($filepath)
+ {
+ $tokenStream = new PHP_Token_Stream($filepath);
+ $firstClassFound = false;
+ foreach ($tokenStream as $token) {
+ if ($firstClassFound === false && $token instanceof PHP_Token_INTERFACE) {
+ $package = $token->getPackage();
+ $this->assertSame('TestClassInBar', $token->getName());
+ $this->assertSame('Foo\\Bar', $package['namespace']);
+ $firstClassFound = true;
+ continue;
+ }
+ // Secound class
+ if ($token instanceof PHP_Token_INTERFACE) {
+ $package = $token->getPackage();
+ $this->assertSame('TestClassInBaz', $token->getName());
+ $this->assertSame('Foo\\Baz', $package['namespace']);
+
+ return;
+ }
+ }
+ $this->fail('Seachring for 2 classes failed');
+ }
+
+ public function testGetPackageNamespaceIsEmptyForInterfacesThatAreNotWithinNamespaces()
+ {
+ foreach ($this->interfaces as $token) {
+ $package = $token->getPackage();
+ $this->assertSame('', $package['namespace']);
+ }
+ }
+
+ /**
+ * @covers PHP_Token_INTERFACE::getPackage
+ */
+ public function testGetPackageNamespaceWhenExtentingFromNamespaceClass()
+ {
+ $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classExtendsNamespacedClass.php');
+ $firstClassFound = false;
+ foreach ($tokenStream as $token) {
+ if ($firstClassFound === false && $token instanceof PHP_Token_INTERFACE) {
+ $package = $token->getPackage();
+ $this->assertSame('Baz', $token->getName());
+ $this->assertSame('Foo\\Bar', $package['namespace']);
+ $firstClassFound = true;
+ continue;
+ }
+ if ($token instanceof PHP_Token_INTERFACE) {
+ $package = $token->getPackage();
+ $this->assertSame('Extender', $token->getName());
+ $this->assertSame('Other\\Space', $package['namespace']);
+
+ return;
+ }
+ }
+ $this->fail('Searching for 2 classes failed');
+ }
+}