|
@@ -30,6 +30,20 @@ use Cake\ORM\TableRegistry;
|
|
|
class HasOneTest extends \Cake\TestSuite\TestCase {
|
|
class HasOneTest extends \Cake\TestSuite\TestCase {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * Fixtures to use.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @var array
|
|
|
|
|
+ */
|
|
|
|
|
+ public $fixtures = ['core.article', 'core.comment'];
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * Don't autoload fixtures as most tests uses mocks.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @var bool
|
|
|
|
|
+ */
|
|
|
|
|
+ public $autoFixture = false;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
* Set up
|
|
* Set up
|
|
|
*
|
|
*
|
|
|
* @return void
|
|
* @return void
|
|
@@ -378,4 +392,22 @@ class HasOneTest extends \Cake\TestSuite\TestCase {
|
|
|
}]);
|
|
}]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * Test that eagerLoader leaves empty associations unpopulated.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ public function testEagerLoaderLeavesEmptyAssocation() {
|
|
|
|
|
+ $this->loadFixtures('Article', 'Comment');
|
|
|
|
|
+ $articles = TableRegistry::get('Articles');
|
|
|
|
|
+ $articles->hasOne('Comments');
|
|
|
|
|
+
|
|
|
|
|
+ // Clear the comments table so we can trigger an empty hasOne.
|
|
|
|
|
+ $comments = TableRegistry::get('Comments');
|
|
|
|
|
+ $comments->deleteAll([]);
|
|
|
|
|
+
|
|
|
|
|
+ $article = $articles->get(1, ['contain' => ['Comments']]);
|
|
|
|
|
+ $this->assertNull($article->comment);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|