Пример #1
0
 /**
  * @covers sAdmin::sGetCountryStateTranslation
  */
 public function testsGetCountryStateTranslation()
 {
     // Backup existing data and inject demo data
     $existingData = Shopware()->Db()->fetchRow("\n            SELECT * FROM s_core_translations\n            WHERE objecttype = 'config_country_states' AND objectlanguage = 1\n        ");
     $demoData = array('objectkey' => 1, 'objectlanguage' => 1, 'objecttype' => 'config_country_states', 'objectdata' => 'a:2:{i:24;a:1:{s:4:"name";s:10:"California";}i:23;a:1:{s:4:"name";s:18:"Arkansas (english)";}}');
     if ($existingData) {
         Shopware()->Db()->update('s_core_translations', $demoData, 'id = ' . $existingData['id']);
     } else {
         Shopware()->Db()->insert('s_core_translations', $demoData);
     }
     // Test with default shop, return empty array
     $this->assertCount(0, $this->module->sGetCountryStateTranslation());
     // Hack the current system shop, so we can properly test this
     Shopware()->Shop()->setDefault(false);
     $result = $this->module->sGetCountryStateTranslation();
     $this->assertCount(2, $result);
     $this->assertArrayHasKey(23, $result);
     $this->assertArrayHasKey(24, $result);
     $this->assertArrayHasKey('name', $result[23]);
     $this->assertArrayHasKey('name', $result[24]);
     $this->assertEquals('Arkansas (english)', $result[23]['name']);
     $this->assertEquals('California', $result[24]['name']);
     // Create a stub of a Shop for fallback.
     $stub = $this->getMockBuilder('\\Shopware\\Models\\Shop\\Shop')->setMethods(array('getId'))->disableOriginalConstructor()->getMock();
     $stub->expects($this->any())->method('getId')->will($this->returnValue(10000));
     Shopware()->Shop()->setFallback($stub);
     Shopware()->Db()->insert('s_core_translations', array('objectkey' => 1, 'objectlanguage' => 10000, 'objecttype' => 'config_country_states', 'objectdata' => 'a:1:{i:2;a:1:{s:4:"name";s:13:"asdfasfdasdfa";}}'));
     // Test with fallback
     $result = $this->module->sGetCountryStateTranslation();
     $this->assertCount(3, $result);
     $this->assertArrayHasKey(2, $result);
     $this->assertArrayHasKey(23, $result);
     $this->assertArrayHasKey(24, $result);
     $this->assertArrayHasKey('name', $result[2]);
     $this->assertArrayHasKey('name', $result[23]);
     $this->assertArrayHasKey('name', $result[24]);
     $this->assertEquals('asdfasfdasdfa', $result[2]['name']);
     $this->assertEquals('Arkansas (english)', $result[23]['name']);
     $this->assertEquals('California', $result[24]['name']);
     // If backup data exists, restore it
     if ($existingData) {
         $existingDataId = $existingData['id'];
         unset($existingData['id']);
         Shopware()->Db()->update('s_core_translations', $existingData, 'id = ' . $existingDataId);
     }
     Shopware()->Db()->delete('s_core_translations', 'objectlanguage = 10000');
 }
Пример #2
0
 /**
  * @covers sAdmin::sGetCountryStateTranslation
  */
 public function testsGetCountryStateTranslation()
 {
     // Backup existing data and inject demo data
     $existingData = Shopware()->Db()->fetchRow("\n            SELECT * FROM s_core_translations\n            WHERE objecttype = 'config_country_states' AND objectlanguage = 1\n        ");
     $demoData = array('objectkey' => 1, 'objectlanguage' => 1, 'objecttype' => 'config_country_states', 'objectdata' => serialize(array(24 => array('name' => 'California'), 23 => array('name' => 'Arkansas (english)'))));
     if ($existingData) {
         Shopware()->Db()->update('s_core_translations', $demoData, 'id = ' . $existingData['id']);
     } else {
         Shopware()->Db()->insert('s_core_translations', $demoData);
     }
     // Test with default shop, return empty array
     $this->assertCount(0, $this->module->sGetCountryStateTranslation());
     // Hack the current system shop, so we can properly test this
     Shopware()->Shop()->setDefault(false);
     $result = $this->module->sGetCountryStateTranslation();
     $this->assertCount(2, $result);
     $this->assertArrayHasKey(23, $result);
     $this->assertArrayHasKey(24, $result);
     $this->assertArrayHasKey('name', $result[23]);
     $this->assertArrayHasKey('name', $result[24]);
     $this->assertEquals('Arkansas (english)', $result[23]['name']);
     $this->assertEquals('California', $result[24]['name']);
     // Create a stub of a Shop for fallback.
     $shopFallbackId = Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->getFallbackId();
     Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->setFallbackId(10000);
     Shopware()->Db()->insert('s_core_translations', array('objectkey' => 1, 'objectlanguage' => 10000, 'objecttype' => 'config_country_states', 'objectdata' => serialize(array(2 => array('name' => 'asdfasfdasdfa')))));
     // Test with fallback
     $result = $this->module->sGetCountryStateTranslation();
     $this->assertCount(3, $result);
     $this->assertArrayHasKey(2, $result);
     $this->assertArrayHasKey(23, $result);
     $this->assertArrayHasKey(24, $result);
     $this->assertArrayHasKey('name', $result[2]);
     $this->assertArrayHasKey('name', $result[23]);
     $this->assertArrayHasKey('name', $result[24]);
     $this->assertEquals('asdfasfdasdfa', $result[2]['name']);
     $this->assertEquals('Arkansas (english)', $result[23]['name']);
     $this->assertEquals('California', $result[24]['name']);
     // If backup data exists, restore it
     if ($existingData) {
         $existingDataId = $existingData['id'];
         unset($existingData['id']);
         Shopware()->Db()->update('s_core_translations', $existingData, 'id = ' . $existingDataId);
     }
     Shopware()->Db()->delete('s_core_translations', 'objectlanguage = 10000');
     Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext()->getShop()->setFallbackId($shopFallbackId);
 }