public function testConvertDescendantConvertsArrayToObjectInFolderContainer() { /** @var PHPUnit_Framework_MockObject_MockObject|JsonConverter $jsonConverterMock */ $jsonConverterMock = $this->getMockBuilder('\\Dkd\\PhpCmis\\Converter\\JsonConverter')->setMethods(array('convertObject'))->getMock(); $response = $this->getResponseFixtureContentAsArray('Cmis/v1.1/BrowserBinding/getDescendants-response.log'); // example with children to test recursion $convertInputData = $response[3]; $dummyObjectData = new ObjectData(); $jsonConverterMock->expects($this->any())->method('convertObject')->willReturn($dummyObjectData); $expectedObjectInFolderContainer = new ObjectInFolderContainer(new ObjectInFolderData()); $objectInFolderData = new ObjectInFolderData(); $objectInFolderData->setObject($dummyObjectData); $objectInFolderData->setPathSegment('My_Folder-1-0'); $expectedObjectInFolderContainer->setObject($objectInFolderData); $dummyObjectInFolderData1 = new ObjectInFolderData(); $dummyObjectInFolderData1->setObject($dummyObjectData); $dummyObjectInFolderData1->setPathSegment('My_Document-2-0'); $dummyObjectInFolderContainer1 = new ObjectInFolderContainer(new ObjectInFolderData()); $dummyObjectInFolderContainer1->setObject($dummyObjectInFolderData1); $children[] = $dummyObjectInFolderContainer1; $dummyObjectInFolderData2 = new ObjectInFolderData(); $dummyObjectInFolderData2->setObject($dummyObjectData); $dummyObjectInFolderData2->setPathSegment('My_Document-2-1'); $dummyObjectInFolderContainer2 = new ObjectInFolderContainer(new ObjectInFolderData()); $dummyObjectInFolderContainer2->setObject($dummyObjectInFolderData2); $children[] = $dummyObjectInFolderContainer2; $dummyObjectInFolderData3 = new ObjectInFolderData(); $dummyObjectInFolderData3->setObject($dummyObjectData); $dummyObjectInFolderData3->setPathSegment('My_Document-2-2'); $dummyObjectInFolderContainer3 = new ObjectInFolderContainer(new ObjectInFolderData()); $dummyObjectInFolderContainer3->setObject($dummyObjectInFolderData3); $children[] = $dummyObjectInFolderContainer3; $dummyObjectInFolderData4 = new ObjectInFolderData(); $dummyObjectInFolderData4->setObject($dummyObjectData); $dummyObjectInFolderData4->setPathSegment('My_Folder-2-0'); $dummyObjectInFolderContainer4 = new ObjectInFolderContainer(new ObjectInFolderData()); $dummyObjectInFolderContainer4->setObject($dummyObjectInFolderData4); $children[] = $dummyObjectInFolderContainer4; $dummyObjectInFolderData5 = new ObjectInFolderData(); $dummyObjectInFolderData5->setObject($dummyObjectData); $dummyObjectInFolderData5->setPathSegment('My_Folder-2-1'); $dummyObjectInFolderContainer5 = new ObjectInFolderContainer(new ObjectInFolderData()); $dummyObjectInFolderContainer5->setObject($dummyObjectInFolderData5); $children[] = $dummyObjectInFolderContainer5; $expectedObjectInFolderContainer->setChildren($children); $this->assertEquals($expectedObjectInFolderContainer, $jsonConverterMock->convertDescendant($convertInputData)); }
/** * @depends testSetObjectsSetsProperty */ public function testGetObjectsReturnsPropertyValue() { $children = array($this->getObjectInFolderContainerMock()); $this->objectInFolderContainer->setChildren($children); $this->assertSame($children, $this->objectInFolderContainer->getChildren()); }
/** * Convert given input data array to a ObjectInFolderContainer object * * @param array|null $data * @return null|ObjectInFolderContainer * @throws CmisRuntimeException */ public function convertDescendant(array $data = null) { if (empty($data)) { return null; } $object = null; if (isset($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_OBJECT])) { $object = $this->convertObjectInFolder($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_OBJECT]); } if ($object === null) { throw new CmisRuntimeException('Given data could not be converted to ObjectInFolder!'); } $objectInFolderContainer = new ObjectInFolderContainer($object); $children = array(); if (isset($data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_CHILDREN])) { foreach ((array) $data[JSONConstants::JSON_OBJECTINFOLDERCONTAINER_CHILDREN] as $childData) { $child = $this->convertDescendant($childData); if ($child !== null) { $children[] = $child; } } } $objectInFolderContainer->setChildren($children); $objectInFolderContainer->setExtensions($this->convertExtension($data, JSONConstants::getObjectInFolderContainerKeys())); return $objectInFolderContainer; }