Skip to content

Commit

Permalink
removed useless code from serializer and finished tests
Browse files Browse the repository at this point in the history
  • Loading branch information
remi-san committed Mar 8, 2016
1 parent 7c3b0a4 commit 59f1dbc
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 20 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Usage
-----

```php

$classMapper = new \RemiSan\Serializer\Mapper\DefaultMapper(
new RemiSan\Serializer\NameExtractor\DefaultNameExtractor()
);
Expand All @@ -14,11 +15,12 @@ Usage
$serializer = new \RemiSan\Serializer\Serializer(
$classMapper,
new \RemiSan\Serializer\Hydrator\HydratorFactory(__DIR__ . '/proxies'),
new \RemiSan\Serializer\Formatter\ArrayFormatter(),
new \RemiSan\Serializer\Formatter\FlatFormatter(),
true
);

$object = new \MySampleClass(new MySampleClass());
$serialized = $serializer->serialize($object);
$deserialized = $serializer->deserialize($serialized);

```
15 changes: 0 additions & 15 deletions src/Serializer.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,6 @@ private function recursiveDeserialize($serializedObject)
} else {
$deserializedArray = [];
foreach ($serializedObject as $key => $value) {
if (!is_array($value)) {
throw new \InvalidArgumentException();
}
$deserializedArray[$key] = $this->recursiveDeserialize($value);
}

Expand All @@ -117,8 +114,6 @@ private function recursiveDeserialize($serializedObject)
*/
private function deserializeObject(array $serializedObject)
{
$this->checkSerializedObject($serializedObject);

list($name, $payload) = $this->dataFormatter->getNameAndPayload($serializedObject);

$curatedPayload = [];
Expand All @@ -133,14 +128,4 @@ private function deserializeObject(array $serializedObject)
->getHydrator($objectFqcn, $this->generateProxies)
->hydrate($curatedPayload, $object);
}

/**
* @param array $serializedObject
*/
private function checkSerializedObject(array $serializedObject)
{
if (!$this->dataFormatter->isSerializedObject($serializedObject)) {
throw new \InvalidArgumentException();
}
}
}
10 changes: 10 additions & 0 deletions tests/unit/Mock/Serializable.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,14 @@

class Serializable
{
public $foo;
protected $bar;
private $baz;

public function __construct($baz = null)
{
$this->foo = 'foo';
$this->bar = 'bar';
$this->baz = $baz;
}
}
57 changes: 53 additions & 4 deletions tests/unit/SerializerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
namespace RemiSan\Serializer\Test;

use RemiSan\Serializer\DataFormatter;
use RemiSan\Serializer\Formatter\FlatFormatter;
use RemiSan\Serializer\Hydrator\HydratorFactory;
use RemiSan\Serializer\Mapper\DefaultMapper;
use RemiSan\Serializer\NameExtractor\DefaultNameExtractor;
use RemiSan\Serializer\SerializableClassMapper;
use RemiSan\Serializer\Serializer;
use RemiSan\Serializer\Test\Mock\Serializable;

class SerializerTest extends \PHPUnit_Framework_TestCase
{
Expand All @@ -20,9 +24,10 @@ class SerializerTest extends \PHPUnit_Framework_TestCase

public function setUp()
{
$this->classMapper = \Mockery::mock(SerializableClassMapper::class);
$this->hydratorFactory = \Mockery::mock(HydratorFactory::class);
$this->dataFormatter = \Mockery::mock(DataFormatter::class);
$this->classMapper = new DefaultMapper(new DefaultNameExtractor());
$this->classMapper->register(Serializable::class);
$this->hydratorFactory = new HydratorFactory(__DIR__ . DIRECTORY_SEPARATOR . 'cache');
$this->dataFormatter = new FlatFormatter();
}

public function tearDown()
Expand All @@ -42,7 +47,28 @@ public function itShouldSerialize()
true
);

$this->assertTrue(true);
$object = new Serializable(new Serializable(['a', 'b']));

$serialized = $serializer->serialize($object);

$this->assertEquals(
[
'foo' => 'foo',
'bar' => 'bar',
'baz' => [
'foo' => 'foo',
'bar' => 'bar',
'baz' => ['a', 'b'],
'_metadata' => [
'name' => 'RemiSan\Serializer\Test\Mock\Serializable'
]
],
'_metadata' => [
'name' => 'RemiSan\Serializer\Test\Mock\Serializable'
]
],
$serialized
);
}

/**
Expand All @@ -57,6 +83,29 @@ public function itShouldDeserialize()
true
);

$serialized = [
'foo' => 'foo',
'bar' => 'bar',
'baz' => [
'foo' => 'foo',
'bar' => 'bar',
'baz' => ['a', 'b'],
'_metadata' => [
'name' => 'RemiSan\Serializer\Test\Mock\Serializable'
]
],
'_metadata' => [
'name' => 'RemiSan\Serializer\Test\Mock\Serializable'
]
];

$deserialized = $serializer->deserialize($serialized);

$this->assertEquals(
new Serializable(new Serializable(['a', 'b'])),
$deserialized
);

$this->assertTrue(true);
}
}

0 comments on commit 59f1dbc

Please sign in to comment.