Version 1
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Database / EmptyStatementTest.php
diff --git a/web/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php b/web/core/tests/Drupal/Tests/Core/Database/EmptyStatementTest.php
new file mode 100644 (file)
index 0000000..19548cd
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+namespace Drupal\Tests\Core\Database;
+
+use Drupal\Core\Database\StatementEmpty;
+use Drupal\Core\Database\StatementInterface;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * Tests the empty pseudo-statement class.
+ *
+ * @group Database
+ */
+class EmptyStatementTest extends UnitTestCase {
+  /**
+   * Tests that the empty result set behaves as empty.
+   */
+  public function testEmpty() {
+    $result = new StatementEmpty();
+
+    $this->assertTrue($result instanceof StatementInterface, 'Class implements expected interface');
+    $this->assertNull($result->fetchObject(), 'Null result returned.');
+  }
+
+  /**
+   * Tests that the empty result set iterates safely.
+   */
+  public function testEmptyIteration() {
+    $result = new StatementEmpty();
+    $this->assertSame(0, iterator_count($result), 'Empty result set should not iterate.');
+  }
+
+  /**
+   * Tests that the empty result set mass-fetches in an expected way.
+   */
+  public function testEmptyFetchAll() {
+    $result = new StatementEmpty();
+
+    $this->assertEquals($result->fetchAll(), [], 'Empty array returned from empty result set.');
+  }
+
+}