public function testSerialize() { $eloquentDriver = new EloquentDriver(); $output = $eloquentDriver->serialize(Capsule::table('users')->find(1)); $expected = array('@type' => 'stdClass', 'id' => array('@scalar' => 'string', '@value' => '1'), 'account_manager_id' => array('@scalar' => 'string', '@value' => '1'), 'username' => array('@scalar' => 'string', '@value' => 'Nil'), 'password' => array('@scalar' => 'string', '@value' => 'password'), 'email' => array('@scalar' => 'string', '@value' => '*****@*****.**'), 'created_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'updated_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'deleted_at' => array('@scalar' => 'NULL', '@value' => null)); $this->assertEquals($expected, $output); }
public function testSerializeModel() { $user = User::find(1); $driver = new EloquentDriver(); $output = $driver->serialize($user); $expected = array('@type' => 'NilPortugues\\Tests\\Serializer\\Drivers\\Eloquent\\Models\\User', 'id' => array('@scalar' => 'integer', '@value' => '1'), 'username' => array('@scalar' => 'string', '@value' => 'Nil'), 'password' => array('@scalar' => 'string', '@value' => 'password'), 'email' => array('@scalar' => 'string', '@value' => '*****@*****.**'), 'created_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'updated_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'deleted_at' => array('@scalar' => 'NULL', '@value' => null), 'latestOrders' => array('@map' => 'array', '@value' => array(0 => array('@type' => 'NilPortugues\\Tests\\Serializer\\Drivers\\Eloquent\\Models\\Orders', 'user_id' => array('@scalar' => 'string', '@value' => '1'), 'name' => array('@scalar' => 'string', '@value' => 'Some item'), 'ordered_at' => array('@scalar' => 'string', '@value' => '2016-01-14 09:15:20'))))); $this->assertEquals($expected, $output); }
/** * Extract the data from an object. * * @param mixed $value * * @return array */ protected function serializeObject($value) { $serialized = EloquentDriver::serialize($value); if ($value !== $serialized) { return $serialized; } return parent::serializeObject($value); }
/** * Extract the data from an object. * * @param mixed $value * * @return array */ protected function serializeObject($value) { $serialized = EloquentDriver::serialize($value); return $value !== $serialized ? $serialized : parent::serializeObject($value); }
public function testSerializeModelWithInvertedOneToOneRelation() { $profile = Profile::with('user')->find(1); $driver = new EloquentDriver(); $output = $driver->serialize($profile); $expected = array('@type' => 'NilPortugues\\Tests\\Serializer\\Drivers\\Eloquent\\Models\\Profile', 'id' => array('@scalar' => 'integer', '@value' => '1'), 'user_id' => array('@scalar' => 'string', '@value' => '1'), 'gravatar' => array('@scalar' => 'string', '@value' => 'ThisIsAVeryRandomHash'), 'created_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'updated_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'user' => array('@type' => 'NilPortugues\\Tests\\Serializer\\Drivers\\Eloquent\\Models\\User', 'id' => array('@scalar' => 'integer', '@value' => '1'), 'account_manager_id' => array('@scalar' => 'string', '@value' => '1'), 'username' => array('@scalar' => 'string', '@value' => 'Nil'), 'password' => array('@scalar' => 'string', '@value' => 'password'), 'email' => array('@scalar' => 'string', '@value' => '*****@*****.**'), 'created_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'updated_at' => array('@scalar' => 'string', '@value' => '2016-01-13 00:06:16'), 'deleted_at' => array('@scalar' => 'NULL', '@value' => null))); $this->assertEquals($expected, $output); }