/**
  * @covers ::aggregate()
  */
 public function testAggregate()
 {
     $conn = $this->getMock('SimpleAR\\Database\\Connection', array('select'));
     $q = new Query(new SelectBuilder(), $conn);
     $sql = 'SELECT `blog_id` AS `blogId` ,AVG(`views`) AS `views_avg` FROM `articles` GROUP BY `blog_id`';
     $expected = [['blogId' => 1, 'views_avg' => 100], ['blogId' => 2, 'views_avg' => 123.45], ['blogId' => 3, 'views_avg' => 1200]];
     $conn->expects($this->once())->method('select')->with($sql, [])->will($this->returnValue($expected));
     $res = $q->root('Article')->groupBy('blogId')->avg('views', 'views_avg');
     $this->assertEquals($expected, $res);
     // - - - Withour groupBy
     $conn = $this->getMock('SimpleAR\\Database\\Connection', array('select'));
     $q = new Query(new SelectBuilder(), $conn);
     $sql = 'SELECT COUNT(*) FROM `articles`';
     $conn->expects($this->once())->method('select')->with($sql, [])->will($this->returnValue([['COUNT(*)' => 12]]));
     $res = $q->root('Article')->count();
     $this->assertEquals(12, $res);
 }
Example #2
0
 /**
  * @covers ::lastInsertId()
  */
 public function testLastInsertId()
 {
     $conn = m::mock('\\SimpleAR\\Database\\Connection[insert]');
     $conn->shouldReceive('insert')->once()->andReturn(12);
     $q = new Query(new InsertBuilder());
     $q->root('Article')->fields(['title'])->values(['Yo.']);
     $q->setConnection($conn);
     $this->assertEquals(12, $q->lastInsertId());
 }