getTestRowWithSubDataTableLoaded(); $this->assertTrue($testRow->c[Row::DATATABLE_ASSOCIATED] < 0); } /** * * @group Core * @group DataTable * @group Row */ public function testDataTableAssociatedIsNegativeWhenSubDataTableAdded() { $testRow = $this->getTestRowWithSubDataTableNotLoaded(); $testRow->addSubtable($this->getTestSubDataTable()); $this->assertTrue($testRow->c[Row::DATATABLE_ASSOCIATED] < 0); } /** * * @group Core * @group DataTable * @group Row */ public function testDataTableAssociatedIsNegativeWhenSubDataTableSetted() { $testRow = $this->getTestRowWithSubDataTableNotLoaded(); $testRow->setSubtable($this->getTestSubDataTable()); $this->assertTrue($testRow->c[Row::DATATABLE_ASSOCIATED] < 0); } /** * * @group Core * @group DataTable * @group Row */ public function testIdSubDataTabledIsPositiveWhenSubDataTableInMemory() { $testRow = $this->getTestRowWithSubDataTableLoaded(); $this->assertTrue($testRow->getIdSubDataTable() > 0); } /** * @group Core * @group DataTable * @group Row */ public function testDataTableAssociatedIsPositiveOnSerializedRow() { $testRow = $this->getTestRowWithSubDataTableLoaded(); // testDataTableAssociatedIsPositiveOnSerializedRow is only valid as long as the Row is not modified after being unserialized $this->assertFalse(method_exists($testRow, '__wakeup')); $serializedTestRow = serialize($testRow); $unserializedTestRow = unserialize($serializedTestRow); $this->assertTrue($unserializedTestRow->c[Row::DATATABLE_ASSOCIATED] > 0); } /** * @group Core * @group DataTable * @group Row */ public function testDataTableAssociatedIsNegativeAfterSerialize() { $testRow = $this->getTestRowWithSubDataTableLoaded(); serialize($testRow); $testRow->cleanPostSerialize(); $this->assertTrue($testRow->c[Row::DATATABLE_ASSOCIATED] < 0); } /** * * @group Core * @group DataTable * @group Row */ public function testIsSubDataTableLoadedIsTrueWhenSubDataTableInMemory() { $testRow = $this->getTestRowWithSubDataTableLoaded(); $this->assertTrue($testRow->isSubtableLoaded()); } /** * * @group Core * @group DataTable * @group Row */ public function testIsSubDataTableLoadedIsFalseWhenSubDataTableNotInMemory() { $testRow = $this->getTestRowWithSubDataTableNotLoaded(); $this->assertFalse($testRow->isSubtableLoaded()); } protected function getTestRowWithSubDataTableLoaded() { $testSubDataTable = $this->getTestSubDataTable(); $testRow = new Row( array( Row::DATATABLE_ASSOCIATED => $testSubDataTable ) ); return $testRow; } protected function getTestSubDataTable() { return new DataTable(); } protected function getTestRowWithSubDataTableNotLoaded() { $testRow = new Row( array( Row::DATATABLE_ASSOCIATED => 50 ) ); return $testRow; } }