@@ -13,48 +13,48 @@ |
||
| 13 | 13 | * Adds customer list test data. |
| 14 | 14 | */ |
| 15 | 15 | class CustomerListAddEzpublishTestData |
| 16 | - extends \Aimeos\MW\Setup\Task\CustomerListAddTestData |
|
| 16 | + extends \Aimeos\MW\Setup\Task\CustomerListAddTestData |
|
| 17 | 17 | { |
| 18 | - /** |
|
| 19 | - * Returns the list of task names which this task depends on. |
|
| 20 | - * |
|
| 21 | - * @return string[] List of task names |
|
| 22 | - */ |
|
| 23 | - public function getPreDependencies() |
|
| 24 | - { |
|
| 25 | - return array( 'TablesCreateEzpublish', 'CustomerAddEzpublishTestData', 'LocaleAddTestData', 'TextAddTestData' ); |
|
| 26 | - } |
|
| 27 | - |
|
| 28 | - |
|
| 29 | - /** |
|
| 30 | - * Adds attribute test data. |
|
| 31 | - */ |
|
| 32 | - public function migrate() |
|
| 33 | - { |
|
| 34 | - $iface = '\\Aimeos\\MShop\\Context\\Item\\Iface'; |
|
| 35 | - if( !( $this->additional instanceof $iface ) ) { |
|
| 36 | - throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) ); |
|
| 37 | - } |
|
| 38 | - |
|
| 39 | - $this->msg( 'Adding customer-list ezPublish test data', 0 ); |
|
| 40 | - $this->additional->setEditor( 'ai-ezpublish:unittest' ); |
|
| 41 | - |
|
| 42 | - $ds = DIRECTORY_SEPARATOR; |
|
| 43 | - $path = dirname( __FILE__ ) . $ds . 'data' . $ds . 'customer-list.php'; |
|
| 44 | - |
|
| 45 | - if( ( $testdata = include( $path ) ) === false ){ |
|
| 46 | - throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer list domain', $path ) ); |
|
| 47 | - } |
|
| 48 | - |
|
| 49 | - $refKeys = array(); |
|
| 50 | - foreach( $testdata['customer/lists'] as $dataset ) { |
|
| 51 | - $refKeys[ $dataset['domain'] ][] = $dataset['refid']; |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - $refIds = array(); |
|
| 55 | - $refIds['text'] = $this->getTextData( $refKeys['text'] ); |
|
| 56 | - $this->addCustomerListData( $testdata, $refIds, 'Ezpublish' ); |
|
| 57 | - |
|
| 58 | - $this->status( 'done' ); |
|
| 59 | - } |
|
| 18 | + /** |
|
| 19 | + * Returns the list of task names which this task depends on. |
|
| 20 | + * |
|
| 21 | + * @return string[] List of task names |
|
| 22 | + */ |
|
| 23 | + public function getPreDependencies() |
|
| 24 | + { |
|
| 25 | + return array( 'TablesCreateEzpublish', 'CustomerAddEzpublishTestData', 'LocaleAddTestData', 'TextAddTestData' ); |
|
| 26 | + } |
|
| 27 | + |
|
| 28 | + |
|
| 29 | + /** |
|
| 30 | + * Adds attribute test data. |
|
| 31 | + */ |
|
| 32 | + public function migrate() |
|
| 33 | + { |
|
| 34 | + $iface = '\\Aimeos\\MShop\\Context\\Item\\Iface'; |
|
| 35 | + if( !( $this->additional instanceof $iface ) ) { |
|
| 36 | + throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) ); |
|
| 37 | + } |
|
| 38 | + |
|
| 39 | + $this->msg( 'Adding customer-list ezPublish test data', 0 ); |
|
| 40 | + $this->additional->setEditor( 'ai-ezpublish:unittest' ); |
|
| 41 | + |
|
| 42 | + $ds = DIRECTORY_SEPARATOR; |
|
| 43 | + $path = dirname( __FILE__ ) . $ds . 'data' . $ds . 'customer-list.php'; |
|
| 44 | + |
|
| 45 | + if( ( $testdata = include( $path ) ) === false ){ |
|
| 46 | + throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer list domain', $path ) ); |
|
| 47 | + } |
|
| 48 | + |
|
| 49 | + $refKeys = array(); |
|
| 50 | + foreach( $testdata['customer/lists'] as $dataset ) { |
|
| 51 | + $refKeys[ $dataset['domain'] ][] = $dataset['refid']; |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + $refIds = array(); |
|
| 55 | + $refIds['text'] = $this->getTextData( $refKeys['text'] ); |
|
| 56 | + $this->addCustomerListData( $testdata, $refIds, 'Ezpublish' ); |
|
| 57 | + |
|
| 58 | + $this->status( 'done' ); |
|
| 59 | + } |
|
| 60 | 60 | } |
@@ -6,15 +6,15 @@ |
||
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | return array ( |
| 9 | - 'customer' => array( |
|
| 10 | - 'customer/UTC001' => array( 'code' => 'UTC001', 'label' => 'unitCustomer1', 'salutation' => 'mr', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => 'Dr.', 'firstname' => 'Max', 'lastname' => 'Mustermann', 'address1' => 'Musterstraße', 'address2' => '1a', 'address3' => '', 'postal' => '20001', 'city' => 'Musterstadt', 'state' => 'Hamburg', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '01234567890', 'email' => '[email protected]', 'telefax' => '01234567890', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '1', 'password' => 'test' ), |
|
| 11 | - 'customer/UTC002' => array( 'code' => 'UTC002', 'label' => 'unitCustomer2', 'salutation' => 'mrs', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => 'Prof. Dr.', 'firstname' => 'Erika', 'lastname' => 'Mustermann', 'address1' => 'Heidestraße', 'address2' => '17', 'address3' => '', 'postal' => '45632', 'city' => 'Köln', 'state' => '', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '09876543210', 'email' => '[email protected]', 'telefax' => '09876543210', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '0','password' => 'test' ), |
|
| 12 | - 'customer/UTC003' => array( 'code' => 'UTC003', 'label' => 'unitCustomer3', 'salutation' => 'mr', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => '', 'firstname' => 'Franz-Xaver', 'lastname' => 'Gabler', 'address1' => 'Phantasiestraße', 'address2' => '2', 'address3' => '', 'postal' => '23643', 'city' => 'Berlin', 'state' => 'Berlin', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '01234509876', 'email' => '[email protected]', 'telefax' => '055544333212', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '1', 'password' => 'test' ), |
|
| 13 | - ), |
|
| 14 | - 'customer/address' => array( |
|
| 15 | - array ( 'parentid' => 'customer/UTC001', 'company' => 'ABC', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr', 'firstname' => 'Our', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '20457', 'city' => 'Hamburg', 'state' => 'Hamburg', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332211', 'email' => '[email protected]', 'telefax' => '055544332212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '0' ), |
|
| 16 | - array ( 'parentid' => 'customer/UTC002', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr.', 'firstname' => 'Good', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '20457', 'city' => 'Hamburg', 'state' => 'Hamburg', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332211', 'email' => '[email protected]', 'telefax' => '055544332212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '1' ), |
|
| 17 | - array ( 'parentid' => 'customer/UTC002', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr.', 'firstname' => 'Good', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '11099', 'city' => 'Berlin', 'state' => 'Berlin', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332221', 'email' => '[email protected]', 'telefax' => '055544333212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '1' ), |
|
| 18 | - array ( 'parentid' => 'customer/UTC003', 'company' => 'unitcompany', 'vatid' => 'DE999999999', 'salutation' => 'company', 'title' => 'unittitle', 'firstname' => 'unitfirstname', 'lastname' => 'unitlastname', 'address1' => 'unitaddress1', 'address2' => 'unitaddress2', 'address3' => 'unitaddress3', 'postal' => 'unitpostal', 'city' => 'unitcity', 'state' => 'unitstate', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '1234567890', 'email' => '[email protected]', 'telefax' => '1234567891', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '2' ), |
|
| 19 | - ), |
|
| 9 | + 'customer' => array( |
|
| 10 | + 'customer/UTC001' => array( 'code' => 'UTC001', 'label' => 'unitCustomer1', 'salutation' => 'mr', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => 'Dr.', 'firstname' => 'Max', 'lastname' => 'Mustermann', 'address1' => 'Musterstraße', 'address2' => '1a', 'address3' => '', 'postal' => '20001', 'city' => 'Musterstadt', 'state' => 'Hamburg', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '01234567890', 'email' => '[email protected]', 'telefax' => '01234567890', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '1', 'password' => 'test' ), |
|
| 11 | + 'customer/UTC002' => array( 'code' => 'UTC002', 'label' => 'unitCustomer2', 'salutation' => 'mrs', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => 'Prof. Dr.', 'firstname' => 'Erika', 'lastname' => 'Mustermann', 'address1' => 'Heidestraße', 'address2' => '17', 'address3' => '', 'postal' => '45632', 'city' => 'Köln', 'state' => '', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '09876543210', 'email' => '[email protected]', 'telefax' => '09876543210', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '0','password' => 'test' ), |
|
| 12 | + 'customer/UTC003' => array( 'code' => 'UTC003', 'label' => 'unitCustomer3', 'salutation' => 'mr', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'title' => '', 'firstname' => 'Franz-Xaver', 'lastname' => 'Gabler', 'address1' => 'Phantasiestraße', 'address2' => '2', 'address3' => '', 'postal' => '23643', 'city' => 'Berlin', 'state' => 'Berlin', 'langid' => 'de', 'countryid' => 'DE', 'telephone' => '01234509876', 'email' => '[email protected]', 'telefax' => '055544333212', 'website' => 'unittest.aimeos.org', 'birthday' => '1970-01-01', 'status' => '1', 'password' => 'test' ), |
|
| 13 | + ), |
|
| 14 | + 'customer/address' => array( |
|
| 15 | + array ( 'parentid' => 'customer/UTC001', 'company' => 'ABC', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr', 'firstname' => 'Our', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '20457', 'city' => 'Hamburg', 'state' => 'Hamburg', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332211', 'email' => '[email protected]', 'telefax' => '055544332212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '0' ), |
|
| 16 | + array ( 'parentid' => 'customer/UTC002', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr.', 'firstname' => 'Good', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '20457', 'city' => 'Hamburg', 'state' => 'Hamburg', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332211', 'email' => '[email protected]', 'telefax' => '055544332212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '1' ), |
|
| 17 | + array ( 'parentid' => 'customer/UTC002', 'company' => 'ABC GmbH', 'vatid' => 'DE999999999', 'salutation' => 'mr', 'title' => 'Dr.', 'firstname' => 'Good', 'lastname' => 'Unittest', 'address1' => 'Pickhuben', 'address2' => '2-4', 'address3' => '', 'postal' => '11099', 'city' => 'Berlin', 'state' => 'Berlin', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '055544332221', 'email' => '[email protected]', 'telefax' => '055544333212', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '1' ), |
|
| 18 | + array ( 'parentid' => 'customer/UTC003', 'company' => 'unitcompany', 'vatid' => 'DE999999999', 'salutation' => 'company', 'title' => 'unittitle', 'firstname' => 'unitfirstname', 'lastname' => 'unitlastname', 'address1' => 'unitaddress1', 'address2' => 'unitaddress2', 'address3' => 'unitaddress3', 'postal' => 'unitpostal', 'city' => 'unitcity', 'state' => 'unitstate', 'countryid' => 'DE', 'langid' => 'de', 'telephone' => '1234567890', 'email' => '[email protected]', 'telefax' => '1234567891', 'website' => 'unittest.aimeos.org', 'flag' => 0, 'pos' => '2' ), |
|
| 19 | + ), |
|
| 20 | 20 | ); |
@@ -6,14 +6,14 @@ |
||
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | return array ( |
| 9 | - 'customer/lists/type' => array ( |
|
| 10 | - 'text/default' => array( 'domain' => 'text', 'code' => 'default', 'label' => 'Standard', 'status' => 1 ), |
|
| 11 | - ), |
|
| 9 | + 'customer/lists/type' => array ( |
|
| 10 | + 'text/default' => array( 'domain' => 'text', 'code' => 'default', 'label' => 'Standard', 'status' => 1 ), |
|
| 11 | + ), |
|
| 12 | 12 | |
| 13 | - 'customer/lists' => array ( |
|
| 14 | - array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/information', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 0, 'status' => 1 ), |
|
| 15 | - array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/notify', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 1, 'status' => 1 ), |
|
| 16 | - array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/newsletter', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 2, 'status' => 1 ), |
|
| 17 | - array( 'parentid' => 'customer/UTC001', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/information', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 3, 'status' => 1 ), |
|
| 18 | - ), |
|
| 13 | + 'customer/lists' => array ( |
|
| 14 | + array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/information', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 0, 'status' => 1 ), |
|
| 15 | + array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/notify', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 1, 'status' => 1 ), |
|
| 16 | + array( 'parentid' => 'customer/UTC003', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/newsletter', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 2, 'status' => 1 ), |
|
| 17 | + array( 'parentid' => 'customer/UTC001', 'typeid' => 'text/default', 'domain' => 'text', 'refid' => 'text/customer/information', 'start' => '2010-01-01 00:00:00', 'end' => '2100-01-01 00:00:00', 'config' => array(), 'pos' => 3, 'status' => 1 ), |
|
| 18 | + ), |
|
| 19 | 19 | ); |
@@ -14,119 +14,119 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | class CustomerAddEzpublishTestData extends \Aimeos\MW\Setup\Task\CustomerAddTestData |
| 16 | 16 | { |
| 17 | - /** |
|
| 18 | - * Returns the list of task names which this task depends on. |
|
| 19 | - * |
|
| 20 | - * @return string[] List of task names |
|
| 21 | - */ |
|
| 22 | - public function getPreDependencies() |
|
| 23 | - { |
|
| 24 | - return array( 'TablesCreateEzpublish', 'EzuserAddAddress', 'MShopSetLocale', 'MediaAddTestData' ); |
|
| 25 | - } |
|
| 26 | - |
|
| 27 | - |
|
| 28 | - /** |
|
| 29 | - * Adds attribute test data. |
|
| 30 | - */ |
|
| 31 | - public function migrate() |
|
| 32 | - { |
|
| 33 | - $iface = '\\Aimeos\\MShop\\Context\\Item\\Iface'; |
|
| 34 | - if( !( $this->additional instanceof $iface ) ) { |
|
| 35 | - throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) ); |
|
| 36 | - } |
|
| 37 | - |
|
| 38 | - $context = $this->getEzContext( $this->additional ); |
|
| 39 | - |
|
| 40 | - $this->msg( 'Adding ezPublish customer test data', 0 ); |
|
| 41 | - |
|
| 42 | - $parentIds = array(); |
|
| 43 | - $ds = DIRECTORY_SEPARATOR; |
|
| 44 | - $context->setEditor( 'ai-ezpublish:unittest' ); |
|
| 45 | - $path = __DIR__ . $ds . 'data' . $ds . 'customer.php'; |
|
| 46 | - |
|
| 47 | - if( ( $testdata = include( $path ) ) === false ){ |
|
| 48 | - throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer domain', $path ) ); |
|
| 49 | - } |
|
| 50 | - |
|
| 51 | - |
|
| 52 | - $customerManager = \Aimeos\MShop\Customer\Manager\Factory::createManager( $context, 'Ezpublish' ); |
|
| 53 | - $customerAddressManager = $customerManager->getSubManager( 'address', 'Ezpublish' ); |
|
| 54 | - |
|
| 55 | - $search = $customerManager->createSearch(); |
|
| 56 | - $search->setConditions( $search->compare( '==', 'customer.code', array( 'UTC001', 'UTC002', 'UTC003' ) ) ); |
|
| 57 | - $items = $customerManager->searchItems( $search ); |
|
| 58 | - |
|
| 59 | - $this->conn->begin(); |
|
| 60 | - |
|
| 61 | - $customerManager->deleteItems( array_keys( $items ) ); |
|
| 62 | - $parentIds = $this->addCustomerData( $testdata, $customerManager, $customerAddressManager->createItem() ); |
|
| 63 | - $this->addCustomerAddressData( $testdata, $customerAddressManager, $parentIds ); |
|
| 64 | - |
|
| 65 | - $this->conn->commit(); |
|
| 66 | - |
|
| 67 | - |
|
| 68 | - $this->status( 'done' ); |
|
| 69 | - } |
|
| 70 | - |
|
| 71 | - |
|
| 72 | - /** |
|
| 73 | - * Returns the Ezpublish context |
|
| 74 | - * |
|
| 75 | - * @param \Aimeos\MShop\Context\Item\Iface $context Context object |
|
| 76 | - * @return \Aimeos\MShop\Context\Item\Ezpublish Ezpublish context object |
|
| 77 | - */ |
|
| 78 | - protected function getEzContext( \Aimeos\MShop\Context\Item\Iface $context ) |
|
| 79 | - { |
|
| 80 | - $class = '\Aimeos\MShop\Context\Item\Ezpublish'; |
|
| 81 | - if( is_a( $context, $class ) ) { |
|
| 82 | - return $context; |
|
| 83 | - } |
|
| 84 | - |
|
| 85 | - $ezContext = new \Aimeos\MShop\Context\Item\Ezpublish(); |
|
| 86 | - $ezContext->setDatabaseManager( clone $context->getDatabaseManager() ); |
|
| 87 | - $ezContext->setSession( clone $context->getSession() ); |
|
| 88 | - $ezContext->setLogger( clone $context->getLogger() ); |
|
| 89 | - $ezContext->setLocale( clone $context->getLocale() ); |
|
| 90 | - $ezContext->setConfig( clone $context->getConfig() ); |
|
| 91 | - $ezContext->setCache( clone $context->getCache() ); |
|
| 92 | - |
|
| 93 | - $task = $this; |
|
| 94 | - |
|
| 95 | - $ezContext->setEzUser( function( $code, $email, $password ) use ( $context ) { |
|
| 96 | - |
|
| 97 | - $id = mt_rand( -0x7fffffff,-1 ); |
|
| 98 | - $dbm = $context->getDatabaseManager(); |
|
| 99 | - $dbconf = $context->getConfig()->get( 'resource/db-customer' ); |
|
| 100 | - $dbname = ( $dbconf ? 'db-customer' : 'db' ); |
|
| 101 | - $conn = $dbm->acquire( $dbname ); |
|
| 102 | - |
|
| 103 | - try |
|
| 104 | - { |
|
| 105 | - $stmt = $conn->create( 'INSERT INTO "ezuser" ( |
|
| 17 | + /** |
|
| 18 | + * Returns the list of task names which this task depends on. |
|
| 19 | + * |
|
| 20 | + * @return string[] List of task names |
|
| 21 | + */ |
|
| 22 | + public function getPreDependencies() |
|
| 23 | + { |
|
| 24 | + return array( 'TablesCreateEzpublish', 'EzuserAddAddress', 'MShopSetLocale', 'MediaAddTestData' ); |
|
| 25 | + } |
|
| 26 | + |
|
| 27 | + |
|
| 28 | + /** |
|
| 29 | + * Adds attribute test data. |
|
| 30 | + */ |
|
| 31 | + public function migrate() |
|
| 32 | + { |
|
| 33 | + $iface = '\\Aimeos\\MShop\\Context\\Item\\Iface'; |
|
| 34 | + if( !( $this->additional instanceof $iface ) ) { |
|
| 35 | + throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) ); |
|
| 36 | + } |
|
| 37 | + |
|
| 38 | + $context = $this->getEzContext( $this->additional ); |
|
| 39 | + |
|
| 40 | + $this->msg( 'Adding ezPublish customer test data', 0 ); |
|
| 41 | + |
|
| 42 | + $parentIds = array(); |
|
| 43 | + $ds = DIRECTORY_SEPARATOR; |
|
| 44 | + $context->setEditor( 'ai-ezpublish:unittest' ); |
|
| 45 | + $path = __DIR__ . $ds . 'data' . $ds . 'customer.php'; |
|
| 46 | + |
|
| 47 | + if( ( $testdata = include( $path ) ) === false ){ |
|
| 48 | + throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer domain', $path ) ); |
|
| 49 | + } |
|
| 50 | + |
|
| 51 | + |
|
| 52 | + $customerManager = \Aimeos\MShop\Customer\Manager\Factory::createManager( $context, 'Ezpublish' ); |
|
| 53 | + $customerAddressManager = $customerManager->getSubManager( 'address', 'Ezpublish' ); |
|
| 54 | + |
|
| 55 | + $search = $customerManager->createSearch(); |
|
| 56 | + $search->setConditions( $search->compare( '==', 'customer.code', array( 'UTC001', 'UTC002', 'UTC003' ) ) ); |
|
| 57 | + $items = $customerManager->searchItems( $search ); |
|
| 58 | + |
|
| 59 | + $this->conn->begin(); |
|
| 60 | + |
|
| 61 | + $customerManager->deleteItems( array_keys( $items ) ); |
|
| 62 | + $parentIds = $this->addCustomerData( $testdata, $customerManager, $customerAddressManager->createItem() ); |
|
| 63 | + $this->addCustomerAddressData( $testdata, $customerAddressManager, $parentIds ); |
|
| 64 | + |
|
| 65 | + $this->conn->commit(); |
|
| 66 | + |
|
| 67 | + |
|
| 68 | + $this->status( 'done' ); |
|
| 69 | + } |
|
| 70 | + |
|
| 71 | + |
|
| 72 | + /** |
|
| 73 | + * Returns the Ezpublish context |
|
| 74 | + * |
|
| 75 | + * @param \Aimeos\MShop\Context\Item\Iface $context Context object |
|
| 76 | + * @return \Aimeos\MShop\Context\Item\Ezpublish Ezpublish context object |
|
| 77 | + */ |
|
| 78 | + protected function getEzContext( \Aimeos\MShop\Context\Item\Iface $context ) |
|
| 79 | + { |
|
| 80 | + $class = '\Aimeos\MShop\Context\Item\Ezpublish'; |
|
| 81 | + if( is_a( $context, $class ) ) { |
|
| 82 | + return $context; |
|
| 83 | + } |
|
| 84 | + |
|
| 85 | + $ezContext = new \Aimeos\MShop\Context\Item\Ezpublish(); |
|
| 86 | + $ezContext->setDatabaseManager( clone $context->getDatabaseManager() ); |
|
| 87 | + $ezContext->setSession( clone $context->getSession() ); |
|
| 88 | + $ezContext->setLogger( clone $context->getLogger() ); |
|
| 89 | + $ezContext->setLocale( clone $context->getLocale() ); |
|
| 90 | + $ezContext->setConfig( clone $context->getConfig() ); |
|
| 91 | + $ezContext->setCache( clone $context->getCache() ); |
|
| 92 | + |
|
| 93 | + $task = $this; |
|
| 94 | + |
|
| 95 | + $ezContext->setEzUser( function( $code, $email, $password ) use ( $context ) { |
|
| 96 | + |
|
| 97 | + $id = mt_rand( -0x7fffffff,-1 ); |
|
| 98 | + $dbm = $context->getDatabaseManager(); |
|
| 99 | + $dbconf = $context->getConfig()->get( 'resource/db-customer' ); |
|
| 100 | + $dbname = ( $dbconf ? 'db-customer' : 'db' ); |
|
| 101 | + $conn = $dbm->acquire( $dbname ); |
|
| 102 | + |
|
| 103 | + try |
|
| 104 | + { |
|
| 105 | + $stmt = $conn->create( 'INSERT INTO "ezuser" ( |
|
| 106 | 106 | "contentobject_id", "email", "login", "login_normalized", "password_hash", "password_hash_type" |
| 107 | 107 | ) VALUES ( |
| 108 | 108 | ?, ?, ?, ?, ?, 5 |
| 109 | 109 | )' ); |
| 110 | 110 | |
| 111 | - $stmt->bind( 1, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT ); |
|
| 112 | - $stmt->bind( 2, $email ); |
|
| 113 | - $stmt->bind( 3, $code ); |
|
| 114 | - $stmt->bind( 4, $code ); |
|
| 115 | - $stmt->bind( 5, $password ); |
|
| 111 | + $stmt->bind( 1, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT ); |
|
| 112 | + $stmt->bind( 2, $email ); |
|
| 113 | + $stmt->bind( 3, $code ); |
|
| 114 | + $stmt->bind( 4, $code ); |
|
| 115 | + $stmt->bind( 5, $password ); |
|
| 116 | 116 | |
| 117 | - $stmt->execute()->finish(); |
|
| 117 | + $stmt->execute()->finish(); |
|
| 118 | 118 | |
| 119 | - $dbm->release( $conn, $dbname ); |
|
| 120 | - } |
|
| 121 | - catch( \Exception $e ) |
|
| 122 | - { |
|
| 123 | - $dbm->release( $conn, $dbname ); |
|
| 124 | - throw $e; |
|
| 125 | - } |
|
| 119 | + $dbm->release( $conn, $dbname ); |
|
| 120 | + } |
|
| 121 | + catch( \Exception $e ) |
|
| 122 | + { |
|
| 123 | + $dbm->release( $conn, $dbname ); |
|
| 124 | + throw $e; |
|
| 125 | + } |
|
| 126 | 126 | |
| 127 | - return $id; |
|
| 128 | - } ); |
|
| 127 | + return $id; |
|
| 128 | + } ); |
|
| 129 | 129 | |
| 130 | - return $ezContext; |
|
| 131 | - } |
|
| 130 | + return $ezContext; |
|
| 131 | + } |
|
| 132 | 132 | } |