Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
et-nik committed Nov 15, 2018
2 parents 64683c1 + c84a5d2 commit c493bc1
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
18 changes: 18 additions & 0 deletions tests/BinnAbstractTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,19 @@ public function testPack()

$this->assertNull($binn->pack('Unknown', 'Unknown'));
}

public function testGetTypeSize()
{
$binn = new BinnOver();

$this->assertEquals(['meta' => 1, 'data' => 0], $binn->getTypeSize($binn::BINN_TRUE));
$this->assertEquals(['meta' => 1, 'data' => 0], $binn->getTypeSize($binn::BINN_FALSE));
$this->assertEquals(['meta' => 3, 'data' => 1], $binn->getTypeSize($binn::BINN_STRING, 'a'));
$this->assertEquals(['meta' => 3, 'data' => 3], $binn->getTypeSize($binn::BINN_STRING, 'abc'));
$this->assertEquals(['meta' => 6, 'data' => 256], $binn->getTypeSize($binn::BINN_STRING, str_repeat('a', 256)));
$this->assertEquals(['meta' => 2, 'data' => 1], $binn->getTypeSize($binn::BINN_STORAGE_BLOB, 'a'));
$this->assertEquals(['meta' => 2, 'data' => 2], $binn->getTypeSize($binn::BINN_STORAGE_BLOB, 'ab'));
}
}

// Make protected methods public
Expand Down Expand Up @@ -128,4 +141,9 @@ public function unpack($varType, $value = null)
{
return parent::unpack($varType, $value);
}

public function getTypeSize($varType, $value = '')
{
return parent::getTypeSize($varType, $value);
}
}
38 changes: 38 additions & 0 deletions tests/BinnObjectTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,42 @@ public function testValidArray()
$this->assertFalse(BinnObject::validArray([1 => 0, 2 => 2]));
$this->assertTrue(BinnObject::validArray(['key' => 'val']));
}

public function testObjectOpen()
{
$binnString = "\xE2\x11\x01\x05hello\xA0\x05world\x00";

$binn = new BinnObject();
$binn->binnOpen($binnString);
$this->assertEquals(['hello' => 'world'], $binn->unserialize());
}

public function testSerialize()
{
$array = ['hello' => 'world'];
$binn = new BinnObject();
$serialized = $binn->serialize($array);

$this->assertEquals("\xE2\x11\x01\x05hello\xA0\x05world\x00", $serialized);
}

/**
* @expectedException Knik\Binn\Exceptions\InvalidArrayException
*/
public function testSerializeInvalid()
{
$binn = new BinnObject();
$binn->serialize(['list', 'array']);
}

public function testSerializeContainers()
{
$binn = new BinnObject();

$array = ['test' => ['list', 'array'], 'test2' => [1 => 'map', 5 => 'array']];
$serialized = $binn->serialize($array);
$unserizlized = $binn->unserialize($serialized);

$this->assertEquals($array, $unserizlized);
}
}
8 changes: 8 additions & 0 deletions tests/BinnTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ public function testSerializeTypes()
$this->assertEquals($array, $unserialized, '', 0.000001);
}

public function testSerializeNullContainers()
{
$binn = new Binn;
$binn->setContainersClasses([]);
$serialized = $binn->serialize(['array']);
$this->assertNull($serialized);
}

public function testObject()
{
$array = ['name' => 'knik/binn', 'description' => 'Serialize to binary string.', 'keywords' => ["serialize", "bin"]];
Expand Down

0 comments on commit c493bc1

Please sign in to comment.