Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / Sharding / SQLAzure / AbstractTestCase.php
diff --git a/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Sharding/SQLAzure/AbstractTestCase.php b/vendor/doctrine/dbal/tests/Doctrine/Tests/DBAL/Sharding/SQLAzure/AbstractTestCase.php
new file mode 100644 (file)
index 0000000..ccf185c
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Sharding\SQLAzure;
+
+use Doctrine\DBAL\DriverManager;
+use Doctrine\DBAL\Schema\Schema;
+use Doctrine\DBAL\Sharding\SQLAzure\SQLAzureShardManager;
+
+abstract class AbstractTestCase extends \PHPUnit_Framework_TestCase
+{
+    protected $conn;
+    protected $sm;
+
+    public function setUp()
+    {
+        if (!isset($GLOBALS['db_type']) || strpos($GLOBALS['db_type'], "sqlsrv") === false) {
+            $this->markTestSkipped('No driver or sqlserver driver specified.');
+        }
+
+        $params = array(
+            'driver' => $GLOBALS['db_type'],
+            'dbname' => $GLOBALS['db_name'],
+            'user' => $GLOBALS['db_username'],
+            'password' => $GLOBALS['db_password'],
+            'host' => $GLOBALS['db_host'],
+            'sharding' => array(
+                'federationName' => 'Orders_Federation',
+                'distributionKey' => 'CustID',
+                'distributionType' => 'integer',
+                'filteringEnabled' => false,
+            ),
+            'driverOptions' => array('MultipleActiveResultSets' => false)
+        );
+        $this->conn = DriverManager::getConnection($params);
+        // assume database is created and schema is:
+        // Global products table
+        // Customers, Orders, OrderItems federation tables.
+        // See http://cloud.dzone.com/articles/using-sql-azure-federations
+        $this->sm = new SQLAzureShardManager($this->conn);
+    }
+
+    public function createShopSchema()
+    {
+        $schema = new Schema();
+
+        $products = $schema->createTable('Products');
+        $products->addColumn('ProductID', 'integer');
+        $products->addColumn('SupplierID', 'integer');
+        $products->addColumn('ProductName', 'string');
+        $products->addColumn('Price', 'decimal', array('scale' => 2, 'precision' => 12));
+        $products->setPrimaryKey(array('ProductID'));
+        $products->addOption('azure.federated', true);
+
+        $customers = $schema->createTable('Customers');
+        $customers->addColumn('CustomerID', 'integer');
+        $customers->addColumn('CompanyName', 'string');
+        $customers->addColumn('FirstName', 'string');
+        $customers->addColumn('LastName', 'string');
+        $customers->setPrimaryKey(array('CustomerID'));
+        $customers->addOption('azure.federated', true);
+        $customers->addOption('azure.federatedOnColumnName', 'CustomerID');
+
+        $orders = $schema->createTable('Orders');
+        $orders->addColumn('CustomerID', 'integer');
+        $orders->addColumn('OrderID', 'integer');
+        $orders->addColumn('OrderDate', 'datetime');
+        $orders->setPrimaryKey(array('CustomerID', 'OrderID'));
+        $orders->addOption('azure.federated', true);
+        $orders->addOption('azure.federatedOnColumnName', 'CustomerID');
+
+        $orderItems = $schema->createTable('OrderItems');
+        $orderItems->addColumn('CustomerID', 'integer');
+        $orderItems->addColumn('OrderID', 'integer');
+        $orderItems->addColumn('ProductID', 'integer');
+        $orderItems->addColumn('Quantity', 'integer');
+        $orderItems->setPrimaryKey(array('CustomerID', 'OrderID', 'ProductID'));
+        $orderItems->addOption('azure.federated', true);
+        $orderItems->addOption('azure.federatedOnColumnName', 'CustomerID');
+
+        return $schema;
+    }
+}