public function register(AbstractTestCase $testCase) { $testCase->setTypePreference('Magium\\Magento\\Actions\\Checkout\\PaymentMethods\\PaymentMethodInterface', 'Magium\\Magento\\Actions\\Checkout\\PaymentMethods\\NoPaymentMethod'); $testCase->setTypePreference('Magium\\Magento\\Actions\\Checkout\\ShippingMethods\\ShippingMethodInterface', 'Magium\\Magento\\Actions\\Checkout\\ShippingMethods\\FirstAvailable'); $testCase->setTypePreference('Magium\\Themes\\ThemeConfigurationInterface', 'Magium\\Magento\\Themes\\AbstractThemeConfiguration'); $testCase->switchThemeConfiguration('Magium\\Magento\\Themes\\Magento19\\ThemeConfiguration'); }
public function switchThemeConfiguration($fullyQualifiedClassName) { $reflection = new \ReflectionClass($fullyQualifiedClassName); if ($reflection->isSubclassOf('Magium\\Magento\\Themes\\NavigableThemeInterface')) { // Not entirely sure of hardcoding the various interface types. May make this configurable parent::switchThemeConfiguration($fullyQualifiedClassName); $this->setTypePreference('Magium\\Magento\\Themes\\AbstractThemeConfiguration', $fullyQualifiedClassName); $this->setTypePreference('Magium\\Magento\\Themes\\NavigableThemeInterface', $fullyQualifiedClassName); $this->setTypePreference('Magium\\Themes\\BaseThemeInterface', $fullyQualifiedClassName); $this->setTypePreference('Magium\\Magento\\Themes\\Customer\\AbstractThemeConfiguration', $this->getTheme()->getCustomerThemeClass()); $this->setTypePreference('Magium\\Magento\\Themes\\OnePageCheckout\\AbstractThemeConfiguration', $this->getTheme()->getCheckoutThemeClass()); } else { throw new InvalidConfigurationException('The theme configuration extend Magium\\Magento\\Themes\\NavigableThemeInterface'); } }