_initDb(); $subscription = new Zend_Feed_Pubsubhubbub_Model_Subscription(); $id = uniqid(); $this->assertFalse($subscription->hasSubscription($id)); $this->assertFalse($subscription->getSubscription($id)); $this->assertFalse($subscription->deleteSubscription($id)); $this->assertTrue($subscription->setSubscription(array('id' => $id))); $this->assertTrue($subscription->hasSubscription($id)); $dataSubscription = $subscription->getSubscription($id); $this->assertTrue(is_array($dataSubscription)); $keys = array('id', 'topic_url', 'hub_url', 'created_time', 'lease_seconds', 'verify_token', 'secret', 'expiration_time', 'subscription_state'); $this->assertSame($keys, array_keys($dataSubscription)); $this->assertFalse($subscription->setSubscription(array('id' => $id))); $this->assertTrue($subscription->deleteSubscription($id)); } public function testImpemetsSubscriptionInterface() { $reflection = new ReflectionClass('Zend_Feed_Pubsubhubbub_Model_Subscription'); $this->assertTrue($reflection->implementsInterface('Zend_Feed_Pubsubhubbub_Model_SubscriptionInterface')); unset($reflection); } protected function _initDb() { if (!extension_loaded('pdo')) { $this->markTestSkipped("extension 'PDO' is not loaded"); } if (!in_array('sqlite', PDO::getAvailableDrivers())) { $this->markTestSkipped("PDO driver 'sqlite' is not available"); } $db = Zend_Db::factory('Pdo_Sqlite', array('dbname' => ':memory:')); Zend_Db_Table::setDefaultAdapter($db); $this->_createTable(); } protected function _createTable() { $sql = "CREATE TABLE subscription (" . "id varchar(32) NOT NULL DEFAULT '', " . "topic_url varchar(255) DEFAULT NULL, " . "hub_url varchar(255) DEFAULT NULL, " . "created_time datetime DEFAULT NULL, " . "lease_seconds bigint(20) DEFAULT NULL, " . "verify_token varchar(255) DEFAULT NULL, " . "secret varchar(255) DEFAULT NULL, " . "expiration_time datetime DEFAULT NULL, " . "subscription_state varchar(12) DEFAULT NULL, " . "PRIMARY KEY (id) " . ");"; Zend_Db_Table::getDefaultAdapter()->getConnection()->query($sql); } }