Exemplo n.º 1
0
 /**
  * Tests that insert queries get a "RETURNING *" string at the end
  *
  * @return void
  */
 public function testInsertReturning()
 {
     $driver = $this->getMockBuilder('Cake\\Database\\Driver\\Postgres')->setMethods(['_connect', 'connection'])->setConstructorArgs([[]])->getMock();
     $connection = $this->getMockBuilder('\\Cake\\Database\\Connection')->setMethods(['connect'])->disableOriginalConstructor()->getMock();
     $query = new \Cake\Database\Query($connection);
     $query->insert(['id', 'title'])->into('articles')->values([1, 'foo']);
     $translator = $driver->queryTranslator('insert');
     $query = $translator($query);
     $this->assertEquals('RETURNING *', $query->clause('epilog'));
     $query = new \Cake\Database\Query($connection);
     $query->insert(['id', 'title'])->into('articles')->values([1, 'foo'])->epilog('FOO');
     $query = $translator($query);
     $this->assertEquals('FOO', $query->clause('epilog'));
 }
Exemplo n.º 2
0
 /**
  * Test that insert queries have results available to them.
  *
  * @return void
  */
 public function testInsertUsesOutput()
 {
     $driver = $this->getMockBuilder('Cake\\Database\\Driver\\Sqlserver')->setMethods(['_connect', 'connection'])->setConstructorArgs([[]])->getMock();
     $connection = $this->getMockBuilder('\\Cake\\Database\\Connection')->setMethods(['connect', 'driver'])->setConstructorArgs([['log' => false]])->getMock();
     $connection->expects($this->any())->method('driver')->will($this->returnValue($driver));
     $query = new \Cake\Database\Query($connection);
     $query->insert(['title'])->into('articles')->values(['title' => 'A new article']);
     $expected = 'INSERT INTO articles (title) OUTPUT INSERTED.* VALUES (:c0)';
     $this->assertEquals($expected, $query->sql());
 }