Example #1
0
 public static function setUpBeforeClass()
 {
     self::$dbm = \TestHelperMw::getDBManager();
     if (!self::$dbm instanceof \Aimeos\MW\DB\Manager\DBAL) {
         return;
     }
     $schema = new \Doctrine\DBAL\Schema\Schema();
     $cacheTable = $schema->createTable('mw_cache_test');
     $cacheTable->addColumn('id', 'string', array('length' => 255));
     $cacheTable->addColumn('siteid', 'integer', array('notnull' => false));
     $cacheTable->addColumn('expire', 'datetime', array('notnull' => false));
     $cacheTable->addColumn('value', 'text', array('length' => 0xffff));
     $cacheTable->addUniqueIndex(array('id', 'siteid'));
     $cacheTable->addIndex(array('expire'));
     $tagTable = $schema->createTable('mw_cache_tag_test');
     $tagTable->addColumn('tid', 'string', array('length' => 255));
     $tagTable->addColumn('tsiteid', 'integer', array('notnull' => false));
     $tagTable->addColumn('tname', 'string', array('length' => 255));
     $tagTable->addUniqueIndex(array('tid', 'tsiteid', 'tname'));
     $tagTable->addForeignKeyConstraint('mw_cache_test', array('tid', 'tsiteid'), array('id', 'siteid'), array('onDelete' => 'CASCADE'));
     $conn = self::$dbm->acquire();
     foreach ($schema->toSQL($conn->getRawObject()->getDatabasePlatform()) as $sql) {
         $conn->create($sql)->execute()->finish();
     }
     self::$dbm->release($conn);
 }
Example #2
0
 /**
  * Returns the database manager object
  *
  * @return \Aimeos\MW\DB\Manager\Iface Database manager object
  */
 public static function getDBManager()
 {
     if (!isset(self::$dbm)) {
         self::$dbm = self::createDBManager();
     }
     return self::$dbm;
 }
Example #3
0
 /**
  * Tears down the fixture, for example, closes a network connection.
  * This method is called after a test is executed.
  *
  * @access protected
  */
 protected function tearDown()
 {
     $this->dbm = \TestHelperMw::getDBManager();
     $conn = $this->dbm->acquire();
     $conn->create('DROP INDEX "idx_msdt_smallint" ON "mw_setup_dbschema_test"')->execute()->finish();
     $conn->create('DROP TABLE "mw_setup_dbschema_test"')->execute()->finish();
     $this->dbm->release($conn);
 }
Example #4
0
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  *
  * @access protected
  */
 protected function setUp()
 {
     $this->config = \TestHelperMw::getConfig();
     if ($this->config->get('resource/db/adapter', false) === false) {
         $this->markTestSkipped('No database configured');
     }
     $this->dbm = \TestHelperMw::getDBManager();
 }
Example #5
0
 protected function tearDown()
 {
     if (($adapter = \TestHelperMw::getConfig()->get('resource/db/adapter', false)) === 'pgsql') {
         $this->dbm = \TestHelperMw::getDBManager();
         $conn = $this->dbm->acquire();
         $conn->create('DROP TABLE "mw_setup_dbschema_test"')->execute()->finish();
         $this->dbm->release($conn);
     }
 }
Example #6
0
 /**
  * Tears down the fixture, for example, closes a network connection.
  * This method is called after a test is executed.
  *
  * @access protected
  */
 protected function tearDown()
 {
     if (\TestHelperMw::getConfig()->get('resource/db/adapter', false) === false) {
         return;
     }
     $this->dbm = \TestHelperMw::getDBManager();
     $conn = $this->dbm->acquire();
     $conn->create('DROP TABLE "mw_log_test"')->execute()->finish();
     $this->dbm->release($conn);
 }
Example #7
0
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  *
  * @access protected
  */
 protected function setUp()
 {
     if (\TestHelperMw::getConfig()->get('resource/db/adapter', false) === false) {
         $this->markTestSkipped('No database configured');
     }
     $dbm = \TestHelperMw::getDBManager();
     $conn = $dbm->acquire();
     $this->object = new \Aimeos\MW\Criteria\SQL($conn);
     $dbm->release($conn);
 }
Example #8
0
 protected function setUp()
 {
     $config = \TestHelperMw::getConfig();
     if ($config->get('resource/db/adapter', false) === false) {
         $this->markTestSkipped('No database configured');
     }
     $dbm = \TestHelperMw::getDBManager();
     $conn = $dbm->acquire();
     $schema = new \Aimeos\MW\Setup\DBSchema\Mysql($conn, $config->get('resource/db/database', 'notfound'), 'mysql');
     $this->object = new BaseImpl($schema, $conn);
     $dbm->release($conn);
 }
Example #9
0
 public static function setUpBeforeClass()
 {
     self::$dbm = \TestHelperMw::getDBManager();
     if (!self::$dbm instanceof \Aimeos\MW\DB\Manager\DBAL) {
         return;
     }
     $schema = new \Doctrine\DBAL\Schema\Schema();
     $table = $schema->createTable('mw_log_test');
     $table->addColumn('facility', 'string', array('length' => 32));
     $table->addColumn('request', 'string', array('length' => 32));
     $table->addColumn('tstamp', 'string', array('length' => 20));
     $table->addColumn('priority', 'integer', array());
     $table->addColumn('message', 'text', array('length' => 0xffff));
     $conn = self::$dbm->acquire();
     foreach ($schema->toSQL($conn->getRawObject()->getDatabasePlatform()) as $sql) {
         $conn->create($sql)->execute()->finish();
     }
     self::$dbm->release($conn);
 }
Example #10
0
 public function testToString()
 {
     $dbm = \TestHelperMw::getDBManager();
     $conn = $dbm->acquire();
     $dbm->release($conn);
     $types = array('list' => \Aimeos\MW\DB\Statement\Base::PARAM_STR, 'string' => \Aimeos\MW\DB\Statement\Base::PARAM_STR, 'float' => \Aimeos\MW\DB\Statement\Base::PARAM_FLOAT, 'int' => \Aimeos\MW\DB\Statement\Base::PARAM_INT, 'undefined' => \Aimeos\MW\DB\Statement\Base::PARAM_INT, 'bool' => \Aimeos\MW\DB\Statement\Base::PARAM_BOOL);
     $expr1 = array();
     $expr1[] = new \Aimeos\MW\Criteria\Expression\Compare\SQL($conn, '==', 'list', array('a', 'b', 'c'));
     $expr1[] = new \Aimeos\MW\Criteria\Expression\Compare\SQL($conn, '~=', 'string', 'value');
     $expr2 = array();
     $expr2[] = new \Aimeos\MW\Criteria\Expression\Compare\SQL($conn, '<', 'float', 0.1);
     $expr2[] = new \Aimeos\MW\Criteria\Expression\Compare\SQL($conn, '>', 'int', 10);
     $objects = array();
     $objects[] = new \Aimeos\MW\Criteria\Expression\Combine\SQL('&&', $expr1);
     $objects[] = new \Aimeos\MW\Criteria\Expression\Combine\SQL('&&', $expr2);
     $object = new \Aimeos\MW\Criteria\Expression\Combine\SQL('||', $objects);
     $test = new \Aimeos\MW\Criteria\Expression\Combine\SQL('!', array($object));
     $expected = " NOT ( ( list IN ('a','b','c') AND string LIKE '%value%' ) OR ( float < 0.1 AND int > 10 ) )";
     $this->assertEquals($expected, $test->toString($types));
     $obj = new \Aimeos\MW\Criteria\Expression\Combine\SQL('&&', array());
     $this->assertEquals('', $obj->toString($types));
     $this->setExpectedException('\\Aimeos\\MW\\Common\\Exception');
     new \Aimeos\MW\Criteria\Expression\Combine\SQL('', array());
 }
Example #11
0
 protected function setUp()
 {
     $this->config = \TestHelperMw::getConfig();
     $this->object = new \Aimeos\MW\Filesystem\Manager\Standard($this->config);
 }
Example #12
0
 public function testFactoryFail()
 {
     $this->setExpectedException('\\Aimeos\\MW\\DB\\Exception');
     \Aimeos\MW\DB\Factory::createManager(\TestHelperMw::getConfig(), 'notDefined');
 }
Example #13
0
 protected function setUp()
 {
     $config = array('db' => \TestHelperMw::getConfig()->get('resource/db'), 'sql' => array('insert' => 'INSERT INTO mw_mqueue_test (queue, cname, rtime, message) VALUES (?, ?, ?, ?)', 'reserve' => 'UPDATE mw_mqueue_test SET cname = ?, rtime = ? WHERE id IN ( SELECT * FROM ( SELECT id FROM mw_mqueue_test WHERE queue = ? AND rtime < ? LIMIT 1 ) AS t )', 'get' => 'SELECT * FROM mw_mqueue_test WHERE queue = ? AND cname = ? AND rtime = ? LIMIT 1', 'delete' => 'DELETE FROM mw_mqueue_test WHERE id = ? AND queue = ?'));
     $mqueue = new \Aimeos\MW\MQueue\Standard($config);
     $this->object = $mqueue->getQueue('email');
 }
Example #14
0
 public function testFactory()
 {
     $config = array('sql' => array('delete' => '', 'deletebytag' => '', 'get' => '', 'getbytag' => '', 'set' => '', 'settag' => ''), 'search' => array('cache.id' => '', 'cache.siteid' => '', 'cache.value' => '', 'cache.expire' => '', 'cache.tag.name' => ''));
     $object = \Aimeos\MW\Cache\Factory::createManager('DB', $config, \TestHelperMw::getDBManager());
     $this->assertInstanceOf('\\Aimeos\\MW\\Cache\\Iface', $object);
 }
Example #15
0
    protected function setUp()
    {
        if (!self::$dbm instanceof \Aimeos\MW\DB\Manager\DBAL) {
            $this->markTestSkipped('No DBAL database manager configured');
        }
        $this->config = array();
        $this->config['search'] = array('id' => array('label' => 'Tree node ID', 'code' => 'tree.id', 'internalcode' => 'id', 'type' => 'integer', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT), 'parentid' => array('label' => 'Tree node parent id', 'code' => 'tree.parentid', 'internalcode' => 'parentid', 'type' => 'integer', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT), 'label' => array('label' => 'Tree node name', 'code' => 'tree.label', 'internalcode' => 'label', 'type' => 'string', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR), 'code' => array('label' => 'Tree node code', 'code' => 'tree.code', 'internalcode' => 'code', 'type' => 'string', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR), 'status' => array('label' => 'Tree node status', 'code' => 'tree.status', 'internalcode' => 'status', 'type' => 'boolean', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_BOOL), 'level' => array('label' => 'Tree node level', 'code' => 'tree.level', 'internalcode' => 'level', 'type' => 'integer', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT), 'left' => array('label' => 'Tree node left number', 'code' => 'tree.left', 'internalcode' => 'nleft', 'type' => 'integer', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT), 'right' => array('label' => 'Tree node right number', 'code' => 'tree.right', 'internalcode' => 'nright', 'type' => 'integer', 'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT));
        $this->config['sql'] = array('delete' => '
				DELETE FROM "mw_tree_test" WHERE nleft >= ? AND nright <= ?
			', 'get' => '
				SELECT
					node."id", node."label", node."code", node."status", node."level",
					node."parentid", node."nleft" AS "left", node."nright" AS "right"
				FROM "mw_tree_test" AS parent, "mw_tree_test" AS node
				WHERE
					node.nleft >= parent.nleft AND node.nleft <= parent.nright
					AND parent.id = ? AND node.level <= parent.level + ?
					AND :cond
				ORDER BY node.nleft
			', 'insert' => '
				INSERT INTO "mw_tree_test" ( label, code, status, parentid, level, nleft, nright ) VALUES ( ?, ?, ?, ?, ?, ?, ? )
			', 'move-left' => '
				UPDATE "mw_tree_test"
				SET nleft = nleft + ?, level = level + ?
				WHERE nleft >= ? AND nleft <= ?
			', 'move-right' => '
				UPDATE "mw_tree_test"
				SET nright = nright + ?
				WHERE nright >= ? AND nright <= ?
			', 'search' => '
				SELECT "id", "label", "code", "status", "level", "nleft" AS "left", "nright" AS "right"
				FROM "mw_tree_test" AS node
				WHERE nleft >= ? AND nright <= ? AND :cond
				ORDER BY :order
			', 'update' => '
				UPDATE "mw_tree_test" SET label = ?, code = ?, status = ? WHERE id = ?
			', 'update-parentid' => '
				UPDATE "mw_tree_test" SET parentid = ? WHERE id = ?
			', 'transstart' => 'BEGIN', 'transcommit' => 'COMMIT', 'transrollback' => 'ROLLBACK');
        switch (\TestHelperMw::getConfig()->get('resource/db/adapter')) {
            case 'mysql':
                $this->config['sql']['newid'] = 'SELECT LAST_INSERT_ID()';
                break;
            case 'pgsql':
                $this->config['sql']['newid'] = 'SELECT lastval()';
                break;
            default:
                $this->markTestSkipped('Only for MySQL and PostgreSQL');
        }
        $conn = self::$dbm->acquire();
        $sql = 'INSERT INTO "mw_tree_test" (parentid, status, label, code, level, nleft, nright) VALUES (0, 1, \'root\', \'root\', 0, 1, 18)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l1n1\', \'l1n1\', 1, 2, 7)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l2n1\', \'l2n1\', 2, 3, 6)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l3n1\', \'l3n1\', 3, 4, 5)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l1n2\', \'l1n2\', 1, 8, 15)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l2n2\', \'l2n2\', 2, 9, 14)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l3n2\', \'l3n2\', 3, 10, 11)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l3n3\', \'l3n3\', 3, 12, 13)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'l1n3\', \'l1n3\', 1, 16, 17)';
        $conn->create($sql)->execute()->finish();
        $sql = 'INSERT INTO "mw_tree_test" (status, label, code, level, nleft, nright) VALUES (1, \'root2\', \'root2\', 0, 19, 20)';
        $conn->create($sql)->execute()->finish();
        self::$dbm->release($conn);
    }
Example #16
0
 public function testFactory()
 {
     $dbm = \Aimeos\MW\DB\Factory::createManager(\TestHelperMw::getConfig());
     $this->setExpectedException('\\Aimeos\\MW\\Tree\\Exception');
     \Aimeos\MW\Tree\Factory::createManager('DBNestedSet', array(), $dbm);
 }
Example #17
0
 /**
  * Tears down the fixture, for example, closes a network connection.
  * This method is called after a test is executed.
  *
  * @access protected
  */
 protected function tearDown()
 {
     $dbm = \TestHelperMw::getDBManager();
     $dbm->release($this->conn);
 }
Example #18
0
 /**
  * Tears down the fixture, for example, closes a network connection.
  * This method is called after a test is executed.
  *
  * @access protected
  */
 protected function tearDown()
 {
     $sql = 'DROP TABLE "mw_tree_test"';
     $this->dbm = \TestHelperMw::getDBManager();
     $conn = $this->dbm->acquire();
     $conn->create($sql)->execute()->finish();
     $this->dbm->release($conn);
 }
Example #19
0
 protected function setUp()
 {
     $config = array('db' => \TestHelperMw::getConfig()->get('resource/db'));
     $this->object = new \Aimeos\MW\MQueue\Standard($config);
 }