コード例 #1
0
    /**
     * Remove subscriptions
     *
     * @throws \Exception
     * @return ViewInterface
     */
    public function unsubscribe()
    {
        if ($this->getState()->getMode() != View\StateInterface::MODE_DISABLED) {
            try {
                // Remove subscriptions
                foreach ($this->getSubscriptions() as $subscriptionConfig) {
                    /** @var \Magento\Framework\Mview\View\SubscriptionInterface $subscription */
                    $subscriptionInstance = $this->subscriptionFactory->create(
                        [
                            'view' => $this,
                            'tableName' => $subscriptionConfig['name'],
                            'columnName' => $subscriptionConfig['column'],
                            'subscriptionModel' => !empty($subscriptionConfig['subscriptionModel'])
                                ? $subscriptionConfig['subscriptionModel']
                                : SubscriptionFactory::INSTANCE_NAME,
                        ]
                    );
                    $subscriptionInstance->remove();
                }

                // Drop changelog table
                $this->getChangelog()->drop();

                // Update view state
                $this->getState()->setVersionId(null)->setMode(View\StateInterface::MODE_DISABLED)->save();
            } catch (\Exception $e) {
                throw $e;
            }
        }

        return $this;
    }
コード例 #2
0
 public function testCreate()
 {
     $subscriptionInterfaceMock = $this->getMockForAbstractClass('Magento\\Framework\\Mview\\View\\SubscriptionInterface', [], '', false);
     $this->objectManagerMock->expects($this->once())->method('create')->with('Magento\\Framework\\Mview\\View\\SubscriptionInterface', ['some_data'])->will($this->returnValue($subscriptionInterfaceMock));
     $this->assertEquals($subscriptionInterfaceMock, $this->model->create(['some_data']));
 }