Browse Source

Add deprecation for enableBufferedResults()

Mark Story 3 years ago
parent
commit
5e617b24c3

+ 5 - 0
src/Database/Query.php

@@ -2216,6 +2216,11 @@ class Query implements ExpressionInterface, IteratorAggregate
      */
     public function enableBufferedResults(bool $enable = true)
     {
+        if (!$enable) {
+            deprecationWarning(
+                '4.5.0 enableBufferedResults() is deprecated. Results will always be buffered in 5.0.'
+            );
+        }
         $this->_dirty();
         $this->_useBufferedResults = $enable;
 

+ 4 - 4
tests/TestCase/Database/Expression/QueryExpressionTest.php

@@ -206,10 +206,10 @@ class QueryExpressionTest extends TestCase
      */
     public function testDeprecatedAddCaseStatement(): void
     {
-        $this->expectDeprecation();
-        $this->expectDeprecationMessage('QueryExpression::addCase() is deprecated, use case() instead.');
-
-        (new QueryExpression())->addCase([]);
+        $this->deprecated(function () {
+            (new QueryExpression())->addCase([]);
+            $this->assertTrue(true);
+        });
     }
 
     public function testCaseWithoutValue(): void

+ 23 - 22
tests/TestCase/Database/QueryTest.php

@@ -4295,32 +4295,34 @@ class QueryTest extends TestCase
      */
     public function testUnbufferedQuery(): void
     {
-        $query = new Query($this->connection);
-        $result = $query->select(['body', 'author_id'])
-            ->from('articles')
-            ->enableBufferedResults(false)
-            ->execute();
+        $this->deprecated(function () {
+            $query = new Query($this->connection);
+            $result = $query->select(['body', 'author_id'])
+                ->from('articles')
+                ->enableBufferedResults(false)
+                ->execute();
 
-        if (!method_exists($result, 'bufferResults')) {
-            $result->closeCursor();
-            $this->markTestSkipped('This driver does not support unbuffered queries');
-        }
+            if (!method_exists($result, 'bufferResults')) {
+                $result->closeCursor();
+                $this->markTestSkipped('This driver does not support unbuffered queries');
+            }
 
-        $this->assertCount(0, $result, 'Unbuffered queries only have a count when results are fetched');
+            $this->assertCount(0, $result, 'Unbuffered queries only have a count when results are fetched');
 
-        $list = $result->fetchAll('assoc');
-        $this->assertCount(3, $list);
-        $result->closeCursor();
+            $list = $result->fetchAll('assoc');
+            $this->assertCount(3, $list);
+            $result->closeCursor();
 
-        $query = new Query($this->connection);
-        $result = $query->select(['body', 'author_id'])
-            ->from('articles')
-            ->execute();
+            $query = new Query($this->connection);
+            $result = $query->select(['body', 'author_id'])
+                ->from('articles')
+                ->execute();
 
-        $this->assertCount(3, $result, 'Buffered queries can be counted any time.');
-        $list = $result->fetchAll('assoc');
-        $this->assertCount(3, $list);
-        $result->closeCursor();
+            $this->assertCount(3, $result, 'Buffered queries can be counted any time.');
+            $list = $result->fetchAll('assoc');
+            $this->assertCount(3, $list);
+            $result->closeCursor();
+        });
     }
 
     public function testCloneUpdateExpression(): void
@@ -5088,7 +5090,6 @@ class QueryTest extends TestCase
             ])
             ->from('profiles')
             ->limit(1)
-            ->enableBufferedResults(false)
             ->execute();
         $results = $stmt->fetch(StatementDecorator::FETCH_TYPE_OBJ);
         $stmt->closeCursor();