public function testCreateRelationHasOne() { $db = $this->getMock('Pix_Table_Db_Adapter_Abstract', array('insertOne')); Pix_Table_TableRelationTest_Table2::setDb($db); $db->expects($this->once())->method('insertOne')->with($this->isInstanceOf('Pix_Table_TableRelationTest_Table2'), array('t2_id' => 1002, 'value' => 't2_value'))->will($this->returnValue(null)); $row = new Pix_Table_Row(array('tableClass' => 'Pix_Table_TableRelationTest_Table', 'data' => array('t1_id' => 1002, 'value' => 'test_create_relation'))); $row2 = $row->create_table2(array('value' => 't2_value', 'no_this_column' => 'value')); $this->assertTrue(Pix_Table::is_a($row2, 'Pix_Table_TableRelationTest_Table2')); $this->assertEquals($row2->t2_id, $row->t1_id); $this->assertEquals($row2->value, 't2_value'); // has_many $db = $this->getMock('Pix_Table_Db_Adapter_Abstract', array('insertOne')); Pix_Table_TableRelationTest_Table3::setDb($db); $db->expects($this->once())->method('insertOne')->with($this->isInstanceOf('Pix_Table_TableRelationTest_Table3', array('t3_t1id' => '1002', 'value' => 'on')))->will($this->returnValue(5566)); $row3 = $row->create_table3s(array('value' => 'on', 'no_this_column' => 'value')); $this->assertEquals($row3->t3_id, 5566); $this->assertEquals($row3->t3_t1id, 1002); $this->assertEquals($row3->value, 'on'); // has_many empty $db = $this->getMock('Pix_Table_Db_Adapter_Abstract', array('insertOne')); Pix_Table_TableRelationTest_Table3::setDb($db); $db->expects($this->once())->method('insertOne')->with($this->isInstanceOf('Pix_Table_TableRelationTest_Table3'), array('t3_t1id' => '1002'))->will($this->returnValue(5567)); $row3 = $row->create_table3s(); $this->assertEquals($row3->t3_id, 5567); $this->assertEquals($row3->t3_t1id, 1002); $this->assertEquals($row3->value, null); }
/** * 測試 is_a */ public function testIs_a() { $this->assertEquals(Pix_Table::is_a('123', 'Pix_Table_TableTest_Table'), false); $this->assertEquals(Pix_Table::is_a(123, 'Pix_Table_TableTest_Table'), false); $this->assertEquals(Pix_Table::is_a(array(123), 'Pix_Table_TableTest_Table'), false); $this->assertEquals(Pix_Table::is_a(new StdClass(), 'Pix_Table_TableTest_Table'), false); $row = Pix_Table_TableTest_Table::createRow(); $this->assertEquals(Pix_Table::is_a($row, 'Pix_Table_TableTest_Table'), true); $row = Pix_Table_TableTest_Table2::createRow(); $this->assertEquals(Pix_Table::is_a($row, 'Pix_Table_TableTest_Table2'), true); }