diff --git a/tests/LooplineSystems/CloseIoApiWrapper/Library/Fake/ObjectHydrateHelperDemo.php b/tests/LooplineSystems/CloseIoApiWrapper/Library/Fake/ObjectHydrateHelperDemo.php new file mode 100644 index 0000000..2cfe148 --- /dev/null +++ b/tests/LooplineSystems/CloseIoApiWrapper/Library/Fake/ObjectHydrateHelperDemo.php @@ -0,0 +1,55 @@ +first; + } + + /** + * @param mixed $first + */ + public function setFirst($first) + { + $this->first = $first; + } + /** + * @return mixed + */ + public function getSecond() + { + return $this->second; + } + + /** + * @param mixed $second + */ + public function setSecond($second) + { + $this->second = $second; + } +} diff --git a/tests/LooplineSystems/CloseIoApiWrapper/Library/ObjectHydrateHelperTraitTest.php b/tests/LooplineSystems/CloseIoApiWrapper/Library/ObjectHydrateHelperTraitTest.php new file mode 100644 index 0000000..83cd02d --- /dev/null +++ b/tests/LooplineSystems/CloseIoApiWrapper/Library/ObjectHydrateHelperTraitTest.php @@ -0,0 +1,96 @@ +testObject = new ObjectHydrateHelperDemo(); + } + + public function testHydrateWithoutData() + { + $data = []; + + $this->testObject->hydrate($data); + + $this->assertNull($this->testObject->getFirst()); + $this->assertNull($this->testObject->getSecond()); + } + + public function testHydratePartialData() + { + $data = [ + 'first' => 10, + ]; + + $this->testObject->hydrate($data); + + $this->assertEquals(10, $this->testObject->getFirst()); + $this->assertNull($this->testObject->getSecond()); + } + + public function testDoNotHydrateFalsyData() + { + $this->testObject->hydrate(['first' => false]); + $this->assertNull($this->testObject->getFirst()); + + $this->testObject->hydrate(['first' => 0]); + $this->assertNull($this->testObject->getFirst()); + + $this->testObject->hydrate(['first' => null]); + $this->assertNull($this->testObject->getFirst()); + } + + public function testHydrateAllData() + { + $data = [ + 'first' => 10, + 'second' => 'test', + ]; + + $this->testObject->hydrate($data); + + $this->assertEquals(10, $this->testObject->getFirst()); + $this->assertEquals('test', $this->testObject->getSecond()); + } + + public function testNonHydrateNonExistingData() + { + $data = [ + 'third' => 10, + ]; + + $this->testObject->hydrate($data); + + $this->assertNull($this->testObject->getFirst()); + $this->assertNull($this->testObject->getSecond()); + } + + public function testHydrateWithCustomMappingData() + { + $data = [ + 'third' => 10, + ]; + + $this->testObject->hydrate($data, [], ['setThird' => 'setFirst']); + + $this->assertEquals(10, $this->testObject->getFirst()); + $this->assertNull($this->testObject->getSecond()); + } +}