123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Abstract database handler for integration tests
- */
- namespace Magento\TestFramework\Db;
- abstract class AbstractDb
- {
- /**
- * DB host name
- *
- * @var string
- */
- protected $_host = '';
- /**
- * DB credentials -- user name
- *
- * @var string
- */
- protected $_user = '';
- /**
- * DB credentials -- password
- *
- * @var string
- */
- protected $_password = '';
- /**
- * DB name
- *
- * @var string
- */
- protected $_schema = '';
- /**
- * Path to a temporary directory in the file system
- *
- * @var string
- */
- protected $_varPath = '';
- /**
- * @var \Magento\Framework\Shell
- */
- protected $_shell;
- /**
- * Set initial essential parameters
- *
- * @param string $host
- * @param string $user
- * @param string $password
- * @param string $schema
- * @param string $varPath
- * @param \Magento\Framework\Shell $shell
- */
- public function __construct($host, $user, $password, $schema, $varPath, \Magento\Framework\Shell $shell)
- {
- $this->_host = $host;
- $this->_user = $user;
- $this->_password = $password;
- $this->_schema = $schema;
- $this->_varPath = $varPath;
- $this->_shell = $shell;
- }
- /**
- * Remove all DB objects
- */
- abstract public function cleanup();
- /**
- * Get filename for setup db dump
- *
- * @return string
- */
- abstract protected function getSetupDbDumpFilename();
- /**
- * Is dump exists
- *
- * @return bool
- */
- abstract public function isDbDumpExists();
- /**
- * Store setup db dump
- */
- abstract public function storeDbDump();
- /**
- * Restore db from setup db dump
- */
- abstract public function restoreFromDbDump();
- /**
- * @return string
- */
- abstract public function getVendorName();
- /**
- * @return string
- */
- public function getSchema()
- {
- return $this->_schema;
- }
- /**
- * @return string
- */
- public function getHost()
- {
- return $this->_host;
- }
- /**
- * @return string
- */
- public function getUser()
- {
- return $this->_user;
- }
- /**
- * @return string
- */
- public function getPassword()
- {
- return $this->_password;
- }
- /**
- * Create file with sql script content.
- * Utility method that is used in children classes
- *
- * @param string $file
- * @param string $content
- * @return int
- */
- protected function _createScript($file, $content)
- {
- return file_put_contents($file, $content);
- }
- /**
- * @throws \LogicException
- */
- protected function assertVarPathWritable()
- {
- if (!is_dir($this->_varPath) || !is_writable($this->_varPath)) {
- throw new \LogicException("The specified '{$this->_varPath}' is not a directory or not writable.");
- }
- }
- }
|