settings = SettingsController::getInstance(); $this->premiumKey = '123457890abcdef'; $this->worker = new PremiumKeyCheck($this->settings); } public function testItRequiresPremiumKeyToBeSpecified() { expect($this->worker->checkProcessingRequirements())->false(); $this->fillPremiumKey(); expect($this->worker->checkProcessingRequirements())->true(); } public function testItChecksPremiumKey() { $response = ['code' => Bridge::KEY_VALID]; /** @var MockObject $bridge */ $bridge = Stub::make( new Bridge, [ 'checkPremiumKey' => $response, 'storePremiumKeyAndState' => null, ], $this ); $this->worker->bridge = $bridge; $this->worker->bridge->expects($this->once()) ->method('checkPremiumKey') ->with($this->equalTo($this->premiumKey)); $this->worker->bridge->expects($this->once()) ->method('storePremiumKeyAndState') ->with( $this->equalTo($this->premiumKey), $this->equalTo($response) ); $this->fillPremiumKey(); expect($this->worker->checkKey())->equals($response); } private function fillPremiumKey() { $this->settings->set( Bridge::PREMIUM_KEY_SETTING_NAME, $this->premiumKey ); } public function _after() { $this->diContainer->get(SettingsRepository::class)->truncate(); } }