diff options
Diffstat (limited to 'server/vendor/php-opencloud/common/tests/unit/Common/JsonPathTest.php')
| -rw-r--r-- | server/vendor/php-opencloud/common/tests/unit/Common/JsonPathTest.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/server/vendor/php-opencloud/common/tests/unit/Common/JsonPathTest.php b/server/vendor/php-opencloud/common/tests/unit/Common/JsonPathTest.php new file mode 100644 index 0000000..1410076 --- /dev/null +++ b/server/vendor/php-opencloud/common/tests/unit/Common/JsonPathTest.php @@ -0,0 +1,70 @@ +<?php + +namespace OpenCloud\Test\Common; + +use OpenCloud\Common\JsonPath; + +class JsonPathTest extends \PHPUnit_Framework_TestCase +{ + private $jsonPath; + + public function setUp() + { + $this->jsonPath = new JsonPath([]); + } + + public function test_it_sets_values_according_to_paths() + { + $this->jsonPath->set('foo.bar.baz', 'VALUE'); + + $expected = [ + 'foo' => [ + 'bar' => [ + 'baz' => 'VALUE', + ] + ] + ]; + + $this->assertEquals($expected, $this->jsonPath->getStructure()); + } + + public function test_it_sets_arrays_according_to_paths() + { + $jsonPath = new JsonPath([ + 'foo' => [ + 'bar' => [ + 'value' => 'VALUE', + ] + ] + ]); + + $jsonPath->set('foo.bar.items', ['item_1', 'item_2']); + + $expected = [ + 'foo' => [ + 'bar' => [ + 'value' => 'VALUE', + 'items' => ['item_1', 'item_2'], + ] + ] + ]; + + $this->assertEquals($expected, $jsonPath->getStructure()); + } + + public function test_it_gets_values_according_to_paths() + { + $jsonPath = new JsonPath([ + 'foo' => [ + 'bar' => [ + 'baz' => 'VALUE_1', + 'lol' => 'VALUE_2', + ] + ] + ]); + + $this->assertEquals('VALUE_1', $jsonPath->get('foo.bar.baz')); + $this->assertEquals('VALUE_2', $jsonPath->get('foo.bar.lol')); + $this->assertNull($jsonPath->get('foo.bar.boo')); + } +} |
