Browse Source

Add test for CaseExpression.

None of the CaseExpression internals are mutable, so a deep copy is not
necessary.
Mark Story 10 years ago
parent
commit
a2a0f5202e
1 changed files with 20 additions and 0 deletions
  1. 20 0
      tests/TestCase/Database/Expression/CaseExpressionTest.php

+ 20 - 0
tests/TestCase/Database/Expression/CaseExpressionTest.php

@@ -93,4 +93,24 @@ class CaseExpressionTest extends TestCase
         $caseExpression->traverse($visitor);
         $this->assertSame(4, $count);
     }
+
+    /**
+     * Test cloning
+     *
+     * @return void
+     */
+    public function testClone()
+    {
+        $expr = new QueryExpression();
+        $expr->eq('test', 'true');
+        $expr2 = new QueryExpression();
+        $expr2->eq('test2', 'false');
+
+        $caseExpression = new CaseExpression([$expr, $expr2], 'foobar');
+        $dupe = clone $caseExpression;
+        $dupe->elseValue('nope');
+
+        $this->assertNotEquals($caseExpression, $dupe);
+        $this->assertNotSame($caseExpression, $dupe);
+    }
 }