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:
Diffstat (limited to 'vendor/sebastian/recursion-context/tests/ContextTest.php')
-rw-r--r--vendor/sebastian/recursion-context/tests/ContextTest.php144
1 files changed, 144 insertions, 0 deletions
diff --git a/vendor/sebastian/recursion-context/tests/ContextTest.php b/vendor/sebastian/recursion-context/tests/ContextTest.php
new file mode 100644
index 0000000..cee0bcf
--- /dev/null
+++ b/vendor/sebastian/recursion-context/tests/ContextTest.php
@@ -0,0 +1,144 @@
+<?php
+/*
+ * This file is part of the Recursion Context package.
+ *
+ * (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.
+ */
+
+namespace SebastianBergmann\RecursionContext;
+
+use PHPUnit_Framework_TestCase;
+
+/**
+ * @covers SebastianBergmann\RecursionContext\Context
+ */
+class ContextTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * @var \SebastianBergmann\RecursionContext\Context
+ */
+ private $context;
+
+ protected function setUp()
+ {
+ $this->context = new Context();
+ }
+
+ public function failsProvider()
+ {
+ return array(
+ array(true),
+ array(false),
+ array(null),
+ array('string'),
+ array(1),
+ array(1.5),
+ array(fopen('php://memory', 'r'))
+ );
+ }
+
+ public function valuesProvider()
+ {
+ $obj2 = new \stdClass();
+ $obj2->foo = 'bar';
+
+ $obj3 = (object) array(1,2,"Test\r\n",4,5,6,7,8);
+
+ $obj = new \stdClass();
+ //@codingStandardsIgnoreStart
+ $obj->null = null;
+ //@codingStandardsIgnoreEnd
+ $obj->boolean = true;
+ $obj->integer = 1;
+ $obj->double = 1.2;
+ $obj->string = '1';
+ $obj->text = "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext";
+ $obj->object = $obj2;
+ $obj->objectagain = $obj2;
+ $obj->array = array('foo' => 'bar');
+ $obj->array2 = array(1,2,3,4,5,6);
+ $obj->array3 = array($obj, $obj2, $obj3);
+ $obj->self = $obj;
+
+ $storage = new \SplObjectStorage();
+ $storage->attach($obj2);
+ $storage->foo = $obj2;
+
+ return array(
+ array($obj, spl_object_hash($obj)),
+ array($obj2, spl_object_hash($obj2)),
+ array($obj3, spl_object_hash($obj3)),
+ array($storage, spl_object_hash($storage)),
+ array($obj->array, 0),
+ array($obj->array2, 0),
+ array($obj->array3, 0)
+ );
+ }
+
+ /**
+ * @covers SebastianBergmann\RecursionContext\Context::add
+ * @uses SebastianBergmann\RecursionContext\InvalidArgumentException
+ * @dataProvider failsProvider
+ */
+ public function testAddFails($value)
+ {
+ $this->setExpectedException(
+ 'SebastianBergmann\\RecursionContext\\Exception',
+ 'Only arrays and objects are supported'
+ );
+ $this->context->add($value);
+ }
+
+ /**
+ * @covers SebastianBergmann\RecursionContext\Context::contains
+ * @uses SebastianBergmann\RecursionContext\InvalidArgumentException
+ * @dataProvider failsProvider
+ */
+ public function testContainsFails($value)
+ {
+ $this->setExpectedException(
+ 'SebastianBergmann\\RecursionContext\\Exception',
+ 'Only arrays and objects are supported'
+ );
+ $this->context->contains($value);
+ }
+
+ /**
+ * @covers SebastianBergmann\RecursionContext\Context::add
+ * @dataProvider valuesProvider
+ */
+ public function testAdd($value, $key)
+ {
+ $this->assertEquals($key, $this->context->add($value));
+
+ // Test we get the same key on subsequent adds
+ $this->assertEquals($key, $this->context->add($value));
+ }
+
+ /**
+ * @covers SebastianBergmann\RecursionContext\Context::contains
+ * @uses SebastianBergmann\RecursionContext\Context::add
+ * @depends testAdd
+ * @dataProvider valuesProvider
+ */
+ public function testContainsFound($value, $key)
+ {
+ $this->context->add($value);
+ $this->assertEquals($key, $this->context->contains($value));
+
+ // Test we get the same key on subsequent calls
+ $this->assertEquals($key, $this->context->contains($value));
+ }
+
+ /**
+ * @covers SebastianBergmann\RecursionContext\Context::contains
+ * @dataProvider valuesProvider
+ */
+ public function testContainsNotFound($value)
+ {
+ $this->assertFalse($this->context->contains($value));
+ }
+}