Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Mocks / UnitOfWorkMock.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/Mocks/UnitOfWorkMock.php b/vendor/doctrine/orm/tests/Doctrine/Tests/Mocks/UnitOfWorkMock.php
new file mode 100644 (file)
index 0000000..9535cdd
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+
+namespace Doctrine\Tests\Mocks;
+
+class UnitOfWorkMock extends \Doctrine\ORM\UnitOfWork
+{
+    private $_mockDataChangeSets = array();
+    private $_persisterMock;
+
+    /**
+     * @override
+     */
+    public function getEntityPersister($entityName)
+    {
+        return isset($this->_persisterMock[$entityName]) ?
+                $this->_persisterMock[$entityName] : parent::getEntityPersister($entityName);
+    }
+
+    /**
+     * @param <type> $entity
+     * @override
+     */
+    public function getEntityChangeSet($entity)
+    {
+        $oid = spl_object_hash($entity);
+        return isset($this->_mockDataChangeSets[$oid]) ?
+                $this->_mockDataChangeSets[$oid] : parent::getEntityChangeSet($entity);
+    }
+
+    /* MOCK API */
+
+    /**
+     * Sets a (mock) persister for an entity class that will be returned when
+     * getEntityPersister() is invoked for that class.
+     *
+     * @param <type> $entityName
+     * @param <type> $persister
+     */
+    public function setEntityPersister($entityName, $persister)
+    {
+        $this->_persisterMock[$entityName] = $persister;
+    }
+
+    public function setDataChangeSet($entity, array $mockChangeSet)
+    {
+        $this->_mockDataChangeSets[spl_object_hash($entity)] = $mockChangeSet;
+    }
+
+    public function setEntityState($entity, $state)
+    {
+        $this->_entityStates[spl_object_hash($entity)] = $state;
+    }
+
+    public function setOriginalEntityData($entity, array $originalData)
+    {
+        $this->_originalEntityData[spl_object_hash($entity)] = $originalData;
+    }
+}
\ No newline at end of file