grantAccess('viewPost'); $post = $this->postMocker->mockSingle(); $output = $this->assert->doesNotThrow(function() use ($post) { return Api::run( new GetPostThumbnailJob(), [ JobArgs::ARG_POST_NAME => $post->getName(), ]); }); $this->assert->isNotNull($post->getContentPath()); $this->assert->isNotNull($post->getThumbnailPath()); $this->assert->isTrue(file_exists($post->getContentPath())); $this->assert->isTrue(file_exists($post->getThumbnailPath())); $this->assert->areEqual('image/jpeg', $output->mimeType); $this->assert->areNotEqual( file_get_contents(Core::getConfig()->main->mediaPath . DS . 'img' . DS . 'thumb.jpg'), $output->fileContent); } public function testIdFail() { $this->grantAccess('viewPost'); $this->assert->throws(function() { Api::run( new GetPostThumbnailJob(), [ JobArgs::ARG_POST_ID => 100, ]); }, 'unsatisfied'); } public function testInvalidName() { $this->grantAccess('viewPost'); $this->assert->throws(function() { Api::run( new GetPostThumbnailJob(), [ JobArgs::ARG_POST_NAME => 'nonsense', ]); }, 'Invalid post name'); } }