|
|
@@ -370,6 +370,33 @@ class RulesCheckerIntegrationTest extends TestCase
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Tests isUnique with multiple fields and a nulled field.
|
|
|
+ *
|
|
|
+ * @group save
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function testIsUniqueMultipleFieldsOneIsNull()
|
|
|
+ {
|
|
|
+ $entity = new Entity([
|
|
|
+ 'author_id' => null,
|
|
|
+ 'title' => 'First Article'
|
|
|
+ ]);
|
|
|
+ $table = TableRegistry::get('Articles');
|
|
|
+ $rules = $table->rulesChecker();
|
|
|
+ $rules->add($rules->isUnique(['title', 'author_id'], 'Nope'));
|
|
|
+
|
|
|
+ $this->assertSame($entity, $table->save($entity));
|
|
|
+
|
|
|
+ // Make a duplicate
|
|
|
+ $entity = new Entity([
|
|
|
+ 'author_id' => null,
|
|
|
+ 'title' => 'First Article'
|
|
|
+ ]);
|
|
|
+ $this->assertFalse($table->save($entity));
|
|
|
+ $this->assertEquals(['title' => ['_isUnique' => 'Nope']], $entity->errors());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* Tests the existsIn domain rule
|
|
|
*
|
|
|
* @group save
|