]> git.mxchange.org Git - friendica.git/blob - tests/src/Util/JSonLDTest.php
Rename class for PSR-0
[friendica.git] / tests / src / Util / JSonLDTest.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2020, Friendica
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Test\src\Util;
23
24 use Friendica\Util\JsonLD;
25 use PHPUnit\Framework\TestCase;
26
27 /**
28  * JsonLD utility test class
29  */
30 class JsonLDTest extends TestCase
31 {       
32         public function testFetchElementArrayNotFound()
33         {
34                 $object = [];
35
36                 $data = JsonLD::fetchElementArray($object, 'field');
37                 $this->assertNull($data);
38         }
39
40         public function testFetchElementArrayFoundEmptyArray()
41         {
42                 $object = ['field' => []];
43
44                 $data = JsonLD::fetchElementArray($object, 'field');
45                 $this->assertSame([[]], $data);
46         }
47
48         public function testFetchElementArrayFoundID()
49         {
50                 $object = ['field' => ['value1', ['@id' => 'value2'], ['@id' => 'value3']]];
51
52                 $data = JsonLD::fetchElementArray($object, 'field', '@id');
53                 $this->assertSame(['value1', 'value2', 'value3'], $data);
54         }
55
56         public function testFetchElementArrayFoundID2()
57         {
58                 $object = ['field' => [['subfield11' => 'value11', 'subfield12' => 'value12'],
59                         ['subfield21' => 'value21', 'subfield22' => 'value22'],
60                         'value3', ['@id' => 'value4', 'subfield42' => 'value42']]];
61
62                 $data = JsonLD::fetchElementArray($object, 'field', '@id');
63                 $this->assertSame(['value3', 'value4'], $data);
64         }
65         public function testFetchElementArrayFoundArrays()
66         {
67                 $object = ['field' => [['subfield11' => 'value11', 'subfield12' => 'value12'],
68                         ['subfield21' => 'value21', 'subfield22' => 'value22']]];
69
70                 $expect = [['subfield11' => 'value11', 'subfield12' => 'value12'],
71                         ['subfield21' => 'value21', 'subfield22' => 'value22']];
72
73                 $data = JsonLD::fetchElementArray($object, 'field');
74                 $this->assertSame($expect, $data);
75         }
76
77         public function testFetchElementNotFound()
78         {
79                 $object = [];
80
81                 $data = JsonLD::fetchElement($object, 'field');
82                 $this->assertNull($data);
83         }
84
85         public function testFetchElementFound()
86         {
87                 $object = ['field' => 'value'];
88
89                 $data = JsonLD::fetchElement($object, 'field');
90                 $this->assertSame('value', $data);
91         }
92
93         public function testFetchElementFoundEmptyString()
94         {
95                 $object = ['field' => ''];
96
97                 $data = JsonLD::fetchElement($object, 'field');
98                 $this->assertSame('', $data);
99         }
100
101         public function testFetchElementKeyFoundEmptyArray()
102         {
103                 $object = ['field' => ['content' => []]];
104
105                 $data = JsonLD::fetchElement($object, 'field', 'content');
106                 $this->assertSame([], $data);
107         }
108
109         public function testFetchElementFoundID()
110         {
111                 $object = ['field' => ['field2' => 'value2', '@id' => 'value', 'field3' => 'value3']];
112
113                 $data = JsonLD::fetchElement($object, 'field');
114                 $this->assertSame('value', $data);
115         }
116
117         public function testFetchElementType()
118         {
119                 $object = ['source' => ['content' => 'body', 'mediaType' => 'text/bbcode']];
120
121                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType', 'text/bbcode');
122                 $this->assertSame('body', $data);
123         }
124
125         public function testFetchElementTypeValueNotFound()
126         {
127                 $object = ['source' => ['content' => 'body', 'mediaType' => 'text/html']];
128
129                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType', 'text/bbcode');
130                 $this->assertNull($data);
131         }
132
133         public function testFetchElementTypeNotFound()
134         {
135                 $object = ['source' => ['content' => 'body', 'mediaType' => 'text/html']];
136
137                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType2', 'text/html');
138                 $this->assertNull($data);
139         }
140
141         public function testFetchElementKeyWithoutType()
142         {
143                 $object = ['source' => ['content' => 'body', 'mediaType' => 'text/bbcode']];
144
145                 $data = JsonLD::fetchElement($object, 'source', 'content');
146                 $this->assertSame('body', $data);
147         }
148
149         public function testFetchElementTypeArray()
150         {
151                 $object = ['source' => [['content' => 'body2', 'mediaType' => 'text/html'],
152                         ['content' => 'body', 'mediaType' => 'text/bbcode']]];
153
154                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType', 'text/bbcode');
155                 $this->assertSame('body', $data);
156         }
157
158         public function testFetchElementTypeValueArrayNotFound()
159         {
160                 $object = ['source' => [['content' => 'body2', 'mediaType' => 'text/html'],
161                         ['content' => 'body', 'mediaType' => 'text/bbcode']]];
162
163                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType', 'text/markdown');
164                 $this->assertNull($data);
165         }
166
167         public function testFetchElementTypeArrayNotFound()
168         {
169                 $object = ['source' => [['content' => 'body2', 'mediaType' => 'text/html'],
170                         ['content' => 'body', 'mediaType' => 'text/bbcode']]];
171
172                 $data = JsonLD::fetchElement($object, 'source', 'content', 'mediaType2', 'text/bbcode');
173                 $this->assertNull($data);
174         }
175 }