/** * @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); }
/** * @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()); }