/** * SELECT文で1件取得する * @return bool */ public function first() { $format = <<<SQL SELECT %s FROM {$this->table} SQL; list($query, $bindings) = $this->buildSelect($format); $this->reset(); if (strpos($query, 'LIMIT 1') === false) { $query .= "\n" . 'LIMIT 1'; } $this->logs[] = array('query' => $query, 'bindings' => $bindings); return $this->DB->fetch($query, $bindings); }
/** * @test */ public function fetch() { $obj = new \stdClass(); $pdoStatementMock = m::mock('PDOStatement'); $pdoStatementMock->shouldReceive('setFetchMode'); $pdoStatementMock->shouldReceive('execute'); $pdoStatementMock->shouldReceive('fetch')->andReturn($obj); $pdoMock = m::mock('PDO'); $pdoMock->shouldReceive('prepare')->andReturn($pdoStatementMock); $connectorInterfaceMock = m::mock('Poulsen\\Connectors\\ConnectorInterface'); $connectorInterfaceMock->shouldReceive('connect')->andReturn($pdoMock); $factoryMock = m::mock('Poulsen\\Connectors\\ConnectorFactory'); $factoryMock->shouldReceive('make')->andReturn($connectorInterfaceMock); $Manager = new Manager($factoryMock); $actual = $Manager->fetch('', array()); $this->assertEquals($actual, $obj); }