public function testFromCache()
 {
     $instance = new Message();
     $instance->clear();
     $instance->registerCallbackHandler('SimpleText', function ($parameters, $language) {
         return 'Foo';
     });
     $instance->get('Foo', 'SimpleText');
     $this->assertEquals(array('inserts' => 1, 'deletes' => 0, 'max' => 1000, 'count' => 1, 'hits' => 0, 'misses' => 1), $instance->getCache()->getStats());
     $instance->get('Foo', 'SimpleText', 'ooo');
     $this->assertEquals(array('inserts' => 2, 'deletes' => 0, 'max' => 1000, 'count' => 2, 'hits' => 0, 'misses' => 2), $instance->getCache()->getStats());
     // Repeated request
     $instance->get('Foo', 'SimpleText');
     $this->assertEquals(array('inserts' => 2, 'deletes' => 0, 'max' => 1000, 'count' => 2, 'hits' => 1, 'misses' => 2), $instance->getCache()->getStats());
     $instance->deregisterHandlerFor('SimpleText');
 }
 private function doCreatePage($page, $namespace)
 {
     $pageContentLanguage = isset($page['contentlanguage']) ? $page['contentlanguage'] : '';
     if (isset($page['message-cache']) && $page['message-cache'] === 'clear') {
         Message::clear();
     }
     $name = isset($page['name']) ? $page['name'] : $page['page'];
     $title = Title::newFromText($name, $namespace);
     if ($namespace === NS_FILE && isset($page['contents']['upload'])) {
         return $this->doUploadFile($title, $page['contents']['upload']);
     }
     if (is_array($page['contents']) && isset($page['contents']['import-from'])) {
         $contents = $this->getFileContentsWithEncodingDetection($this->getTestCaseLocation() . $page['contents']['import-from']);
     } else {
         $contents = $page['contents'];
     }
     $this->pageCreator->createPage($title, $contents, $pageContentLanguage);
     $this->itemsMarkedForDeletion[] = $this->pageCreator->getPage();
     if (isset($page['move-to'])) {
         $this->doMovePage($page, $namespace);
     }
     if (isset($page['do-purge'])) {
         $this->pageCreator->getPage()->doPurge();
     }
     if (isset($page['do-delete']) && $page['do-delete']) {
         $this->pageDeleter->deletePage($title);
     }
 }