Version 1
[yaffs-website] / vendor / symfony / validator / Tests / Constraints / IdenticalToValidatorTest.php
diff --git a/vendor/symfony/validator/Tests/Constraints/IdenticalToValidatorTest.php b/vendor/symfony/validator/Tests/Constraints/IdenticalToValidatorTest.php
new file mode 100644 (file)
index 0000000..9ce3f32
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Validator\Tests\Constraints;
+
+use Symfony\Component\Validator\Constraints\IdenticalTo;
+use Symfony\Component\Validator\Constraints\IdenticalToValidator;
+use Symfony\Component\Validator\Validation;
+
+/**
+ * @author Daniel Holmes <daniel@danielholmes.org>
+ */
+class IdenticalToValidatorTest extends AbstractComparisonValidatorTestCase
+{
+    protected function getApiVersion()
+    {
+        return Validation::API_VERSION_2_5;
+    }
+
+    protected function createValidator()
+    {
+        return new IdenticalToValidator();
+    }
+
+    protected function createConstraint(array $options)
+    {
+        return new IdenticalTo($options);
+    }
+
+    protected function getErrorCode()
+    {
+        return IdenticalTo::NOT_IDENTICAL_ERROR;
+    }
+
+    public function provideAllValidComparisons()
+    {
+        $this->setDefaultTimezone('UTC');
+
+        // Don't call addPhp5Dot5Comparisons() automatically, as it does
+        // not take care of identical objects
+        $comparisons = $this->provideValidComparisons();
+
+        $this->restoreDefaultTimezone();
+
+        return $comparisons;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function provideValidComparisons()
+    {
+        $date = new \DateTime('2000-01-01');
+        $object = new ComparisonTest_Class(2);
+
+        $comparisons = array(
+            array(3, 3),
+            array('a', 'a'),
+            array($date, $date),
+            array($object, $object),
+            array(null, 1),
+        );
+
+        if (PHP_VERSION_ID >= 50500) {
+            $immutableDate = new \DateTimeImmutable('2000-01-01');
+            $comparisons[] = array($immutableDate, $immutableDate);
+        }
+
+        return $comparisons;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function provideInvalidComparisons()
+    {
+        return array(
+            array(1, '1', 2, '2', 'integer'),
+            array(2, '2', '2', '"2"', 'string'),
+            array('22', '"22"', '333', '"333"', 'string'),
+            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', 'DateTime'),
+            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', new \DateTime('1999-01-01'), 'Jan 1, 1999, 12:00 AM', 'DateTime'),
+            array(new ComparisonTest_Class(4), '4', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
+        );
+    }
+}