Skip to content

Commit 2662793

Browse files
author
Greg Bowler
committed
Remove Json functionality, moved to PhpGt/Json
Closes #3
1 parent 5aec09c commit 2662793

File tree

6 files changed

+0
-311
lines changed

6 files changed

+0
-311
lines changed

src/DataObjectBuilder.php

-42
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
<?php
22
namespace Gt\DataObject;
33

4-
use Gt\DataObject\Json\JsonArrayData;
5-
use Gt\DataObject\Json\JsonKvpData;
6-
use Gt\DataObject\Json\JsonPrimitiveData;
7-
84
class DataObjectBuilder {
95
public function fromObject(
106
object $input,
@@ -63,42 +59,4 @@ public function fromAssociativeArray(array $input):DataObject {
6359

6460
return $dataObject;
6561
}
66-
67-
public function fromJsonObject(
68-
object|array|string|int|float|bool|null $json
69-
):JsonKvpData|JsonArrayData|JsonPrimitiveData|null {
70-
$jsonData = null;
71-
72-
if(is_object($json)) {
73-
/** @var JsonKvpData $jsonData */
74-
$jsonData = $this->fromObject(
75-
$json,
76-
JsonKvpData::class
77-
);
78-
}
79-
elseif(is_array($json)) {
80-
$jsonData = $this->fromIndexedArray(
81-
$json
82-
);
83-
}
84-
else {
85-
$jsonData = (new JsonPrimitiveData())->withValue($json);
86-
}
87-
88-
return $jsonData;
89-
}
90-
91-
private function fromIndexedArray(array $json):JsonArrayData {
92-
$jsonData = new JsonArrayData();
93-
94-
foreach($json as $key => $value) {
95-
if(is_object($value)) {
96-
$value = $this->fromObject($value);
97-
}
98-
99-
$jsonData = $jsonData->with($key, $value);
100-
}
101-
102-
return $jsonData;
103-
}
10462
}

src/Json/JsonArrayData.php

-57
This file was deleted.

src/Json/JsonData.php

-7
This file was deleted.

src/Json/JsonKvpData.php

-4
This file was deleted.

src/Json/JsonPrimitiveData.php

-20
This file was deleted.

test/phpunit/DataObjectBuilderTest.php

-181
Original file line numberDiff line numberDiff line change
@@ -163,185 +163,4 @@ public function testMixingObjectInAssociativeArrayThrowsError() {
163163
self::expectException(ObjectWithinAssociativeArrayException::class);
164164
$sut->fromAssociativeArray($array);
165165
}
166-
167-
public function testJsonKVP() {
168-
$jsonString = <<<JSON
169-
{
170-
"id": 123,
171-
"name": "Example"
172-
}
173-
JSON;
174-
175-
$json = json_decode($jsonString);
176-
$sut = new DataObjectBuilder();
177-
$dataObject = $sut->fromObject($json);
178-
self::assertEquals(123, $dataObject->getInt("id"));
179-
self::assertEquals("Example", $dataObject->getString("name"));
180-
}
181-
182-
public function testJsonContainingArray() {
183-
$jsonString = <<<JSON
184-
{
185-
"id": 123,
186-
"name": "Example",
187-
"tags": ["test", "data", "json"]
188-
}
189-
JSON;
190-
191-
$json = json_decode($jsonString);
192-
$sut = new DataObjectBuilder();
193-
$dataObject = $sut->fromObject($json);
194-
self::assertEquals(123, $dataObject->getInt("id"));
195-
self::assertContains("test", $dataObject->getArray("tags"));
196-
self::assertContains("data", $dataObject->getArray("tags"));
197-
self::assertContains("json", $dataObject->getArray("tags"));
198-
}
199-
200-
public function testJsonContainingArrayWhenDecodedAsArray() {
201-
$jsonString = <<<JSON
202-
{
203-
"id": 123,
204-
"name": "Example",
205-
"tags": ["test", "data", "json"]
206-
}
207-
JSON;
208-
209-
$json = json_decode($jsonString, true);
210-
$sut = new DataObjectBuilder();
211-
$dataObject = $sut->fromAssociativeArray($json);
212-
self::assertEquals(123, $dataObject->getInt("id"));
213-
self::assertContains("test", $dataObject->getArray("tags"));
214-
self::assertContains("data", $dataObject->getArray("tags"));
215-
self::assertContains("json", $dataObject->getArray("tags"));
216-
}
217-
218-
public function testFromJsonObject() {
219-
$jsonString = <<<JSON
220-
{
221-
"id": 123,
222-
"name": "Example"
223-
}
224-
JSON;
225-
226-
$json = json_decode($jsonString);
227-
$sut = new DataObjectBuilder();
228-
$data = $sut->fromJsonObject($json);
229-
230-
self::assertEquals(123, $data->getInt("id"));
231-
self::assertEquals("Example", $data->getString("name"));
232-
}
233-
234-
public function testFromJsonObjectArray() {
235-
$jsonString = <<<JSON
236-
["one", "two", "three"]
237-
JSON;
238-
239-
$json = json_decode($jsonString);
240-
$sut = new DataObjectBuilder();
241-
$data = $sut->fromJsonObject($json);
242-
243-
self::assertCount(3, $data);
244-
self::assertEquals("one", $data[0]);
245-
self::assertEquals("two", $data[1]);
246-
self::assertEquals("three", $data[2]);
247-
}
248-
249-
public function testFromJsonObjectArrayNestedObject() {
250-
$jsonString = <<<JSON
251-
["one", "two", {
252-
"id": 123,
253-
"name": "Example"
254-
}]
255-
JSON;
256-
257-
$json = json_decode($jsonString);
258-
$sut = new DataObjectBuilder();
259-
$data = $sut->fromJsonObject($json);
260-
261-
self::assertCount(3, $data);
262-
self::assertEquals("one", $data[0]);
263-
self::assertInstanceOf(DataObject::class, $data[2]);
264-
self::assertEquals(123, $data[2]->getInt("id"));
265-
self::assertEquals("Example", $data[2]->getString("name"));
266-
}
267-
268-
public function testFromJsonObjectArrayNestedArray() {
269-
$jsonString = <<<JSON
270-
["one", "two", {
271-
"id": 123,
272-
"name": "Example",
273-
"tags": ["test", "data", "json"]
274-
}]
275-
JSON;
276-
277-
$json = json_decode($jsonString);
278-
$sut = new DataObjectBuilder();
279-
/** @var JsonArrayData $data */
280-
$data = $sut->fromJsonObject($json);
281-
282-
self::assertCount(3, $data);
283-
$tagsArray = $data[2]->getArray("tags");
284-
self::assertCount(3, $tagsArray);
285-
self::assertContains("test", $tagsArray);
286-
self::assertContains("data", $tagsArray);
287-
self::assertContains("json", $tagsArray);
288-
self::assertNotContains("name", $tagsArray);
289-
}
290-
291-
public function testFromJsonObjectNull() {
292-
$jsonString = "null";
293-
$json = json_decode($jsonString);
294-
$sut = new DataObjectBuilder();
295-
$data = $sut->fromJsonObject($json);
296-
297-
self::assertInstanceOf(JsonPrimitiveData::class, $data);
298-
self::assertNull($data->getValue());
299-
self::assertEquals("NULL", $data->getType());
300-
}
301-
302-
public function testFromJsonObjectBool() {
303-
$jsonString = "true";
304-
$json = json_decode($jsonString);
305-
$sut = new DataObjectBuilder();
306-
$data = $sut->fromJsonObject($json);
307-
308-
self::assertInstanceOf(JsonPrimitiveData::class, $data);
309-
self::assertTrue($data->getValue());
310-
self::assertEquals("boolean", $data->getType());
311-
}
312-
313-
public function testFromJsonObjectInt() {
314-
$jsonString = "123";
315-
$json = json_decode($jsonString);
316-
$sut = new DataObjectBuilder();
317-
$data = $sut->fromJsonObject($json);
318-
319-
self::assertInstanceOf(JsonPrimitiveData::class, $data);
320-
self::assertEquals(123, $data->getValue());
321-
self::assertEquals("integer", $data->getType());
322-
}
323-
324-
public function testFromJsonObjectFloat() {
325-
$jsonString = "123.456";
326-
$json = json_decode($jsonString);
327-
$sut = new DataObjectBuilder();
328-
$data = $sut->fromJsonObject($json);
329-
330-
self::assertInstanceOf(JsonPrimitiveData::class, $data);
331-
self::assertEquals(123.456, $data->getValue());
332-
self::assertEquals("double", $data->getType());
333-
}
334-
335-
public function testFromJsonObjectString() {
336-
$jsonString = <<<JSON
337-
"Example!"
338-
JSON;
339-
$json = json_decode($jsonString);
340-
$sut = new DataObjectBuilder();
341-
$data = $sut->fromJsonObject($json);
342-
343-
self::assertInstanceOf(JsonPrimitiveData::class, $data);
344-
self::assertEquals("Example!", $data->getValue());
345-
self::assertEquals("string", $data->getType());
346-
}
347166
}

0 commit comments

Comments
 (0)