/** * Perform the status check for the capability. Each time this method * is called the status will be re-checked. * @return boolean The enabled status of the package and capability set. */ public function isEnabled() { $req = new IsEnabledRequest(); $resp = new IsEnabledResponse(); $req->setPackage($this->packageName); foreach ($this->capabilities as $capability) { $req->addCapability($capability); } ApiProxy::makeSyncCall('capability_service', 'IsEnabled', $req, $resp); $status = $resp->getSummaryStatus(); if ($status === SummaryStatus::UNKNOWN) { throw new UnknownCapabilityError(); } return $status === SummaryStatus::ENABLED || $status === SummaryStatus::SCHEDULED_FUTURE || $status === SummaryStatus::SCHEDULED_NOW; }
public function testUnknownCapability() { $req = new IsEnabledRequest(); $req->setPackage('datastore'); $req->addCapability('*'); $req->addCapability('write'); $resp = new IsEnabledResponse(); $resp->setSummaryStatus(SummaryStatus::UNKNOWN); $config = $resp->addConfig(); $config->setPackage('datastore'); $config->setCapability('*'); $config->setStatus(Status::ENABLED); $this->apiProxyMock->expectCall('capability_service', 'IsEnabled', $req, $resp); $this->setExpectedException('google\\appengine\\api\\capabilities\\UnknownCapabilityError'); $capability = new Capability('datastore', array('write')); $capability->isEnabled(); $this->apiProxyMock->verify(); }