/** * @covers sAdmin::sGetPaymentTranslation */ public function testsGetPaymentTranslation() { // Backup existing data and inject demo data $existingData = Shopware()->Db()->fetchRow("\n SELECT * FROM s_core_translations\n WHERE objecttype = 'config_payment' AND objectlanguage = 2\n "); $demoData = array('objectkey' => 1, 'objectlanguage' => 2, 'objecttype' => 'config_payment', 'objectdata' => serialize(array(4 => array('description' => 'Invoice', 'additionalDescription' => 'Payment by invoice. Shopware provides automatic invoicing for all customers on orders after the first, in order to avoid defaults on payment.'), 2 => array('description' => 'Debit', 'additionalDescription' => 'Additional text'), 3 => array('description' => 'Cash on delivery', 'additionalDescription' => '(including 2.00 Euro VAT)'), 5 => array('description' => 'Paid in advance', 'additionalDescription' => 'The goods are delivered directly upon receipt of payment.'), 6 => array('additionalDescription' => 'SEPA direct debit')))); if ($existingData) { Shopware()->Db()->update('s_core_translations', $demoData, 'id = ' . $existingData['id']); } else { Shopware()->Db()->insert('s_core_translations', $demoData); } // Test loading all data, should return the test data $shopId = Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->getId(); Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->setId(2); $result = $this->module->sGetPaymentTranslation(); $this->assertCount(5, $result); $this->assertArrayHasKey(2, $result); $this->assertArrayHasKey(3, $result); $this->assertArrayHasKey(4, $result); $this->assertArrayHasKey(5, $result); $this->assertArrayHasKey(6, $result); $this->assertArrayHasKey('description', $result[2]); $this->assertArrayHasKey('additionalDescription', $result[2]); $this->assertArrayHasKey('description', $result[3]); $this->assertArrayHasKey('additionalDescription', $result[3]); $this->assertArrayHasKey('description', $result[5]); $this->assertArrayHasKey('additionalDescription', $result[5]); $this->assertEquals('Debit', $result[2]['description']); $this->assertEquals('Additional text', $result[2]['additionalDescription']); $this->assertEquals('Cash on delivery', $result[3]['description']); $this->assertEquals('(including 2.00 Euro VAT)', $result[3]['additionalDescription']); $this->assertEquals('Paid in advance', $result[5]['description']); $this->assertEquals('The goods are delivered directly upon receipt of payment.', $result[5]['additionalDescription']); // Test with just one payment mean $result = $this->module->sGetPaymentTranslation(array('id' => 2, 'randomField' => 'randomValue')); $this->assertCount(4, $result); $this->assertArrayHasKey('id', $result); $this->assertArrayHasKey('description', $result); $this->assertArrayHasKey('additionaldescription', $result); $this->assertArrayHasKey('randomField', $result); $this->assertEquals(2, $result['id']); $this->assertEquals('Debit', $result['description']); $this->assertEquals('Additional text', $result['additionaldescription']); $this->assertEquals('randomValue', $result['randomField']); // If backup data exists, restore it if ($existingData) { $existingDataId = $existingData['id']; unset($existingData['id']); Shopware()->Db()->update('s_core_translations', $existingData, 'id = ' . $existingDataId); } Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->setId($shopId); }
/** * @covers sAdmin::sGetPaymentTranslation */ public function testsGetPaymentTranslation() { // Backup existing data and inject demo data $existingData = Shopware()->Db()->fetchRow("\n SELECT * FROM s_core_translations\n WHERE objecttype = 'config_payment' AND objectlanguage = 2\n "); $demoData = array('objectkey' => 1, 'objectlanguage' => 2, 'objecttype' => 'config_payment', 'objectdata' => 'a:5:{i:4;a:2:{s:11:"description";s:7:"Invoice";s:21:"additionalDescription";s:141:"Payment by invoice. Shopware provides automatic invoicing for all customers on orders after the first, in order to avoid defaults on payment.";}i:2;a:2:{s:11:"description";s:5:"Debit";s:21:"additionalDescription";s:15:"Additional text";}i:3;a:2:{s:11:"description";s:16:"Cash on delivery";s:21:"additionalDescription";s:25:"(including 2.00 Euro VAT)";}i:5;a:2:{s:11:"description";s:15:"Paid in advance";s:21:"additionalDescription";s:57:"The goods are delivered directly upon receipt of payment.";}i:6;a:1:{s:21:"additionalDescription";s:17:"SEPA direct debit";}}'); if ($existingData) { Shopware()->Db()->update('s_core_translations', $demoData, 'id = ' . $existingData['id']); } else { Shopware()->Db()->insert('s_core_translations', $demoData); } // Test loading all data, should return the test data $this->module->sSYSTEM->sLanguage = 2; $result = $this->module->sGetPaymentTranslation(); $this->assertCount(5, $result); $this->assertArrayHasKey(2, $result); $this->assertArrayHasKey(3, $result); $this->assertArrayHasKey(4, $result); $this->assertArrayHasKey(5, $result); $this->assertArrayHasKey(6, $result); $this->assertArrayHasKey('description', $result[2]); $this->assertArrayHasKey('additionalDescription', $result[2]); $this->assertArrayHasKey('description', $result[3]); $this->assertArrayHasKey('additionalDescription', $result[3]); $this->assertArrayHasKey('description', $result[5]); $this->assertArrayHasKey('additionalDescription', $result[5]); $this->assertEquals('Debit', $result[2]['description']); $this->assertEquals('Additional text', $result[2]['additionalDescription']); $this->assertEquals('Cash on delivery', $result[3]['description']); $this->assertEquals('(including 2.00 Euro VAT)', $result[3]['additionalDescription']); $this->assertEquals('Paid in advance', $result[5]['description']); $this->assertEquals('The goods are delivered directly upon receipt of payment.', $result[5]['additionalDescription']); // Test with just one payment mean $result = $this->module->sGetPaymentTranslation(array('id' => 2, 'randomField' => 'randomValue')); $this->assertCount(4, $result); $this->assertArrayHasKey('id', $result); $this->assertArrayHasKey('description', $result); $this->assertArrayHasKey('additionaldescription', $result); $this->assertArrayHasKey('randomField', $result); $this->assertEquals(2, $result['id']); $this->assertEquals('Debit', $result['description']); $this->assertEquals('Additional text', $result['additionaldescription']); $this->assertEquals('randomValue', $result['randomField']); // If backup data exists, restore it if ($existingData) { $existingDataId = $existingData['id']; unset($existingData['id']); Shopware()->Db()->update('s_core_translations', $existingData, 'id = ' . $existingDataId); } }