delete(); parent::tearDownAfterClass(); } public function testGet_id() { $this->assertTrue(is_int(self::$object->get_id())); } public function testGet_record() { $this->assertInstanceOf('record_adapter', self::$object->get_record()); $this->assertEquals(self::$DI['record_1']->get_record_id(), self::$object->get_record()->get_record_id()); $this->assertEquals(self::$DI['record_1']->get_sbas_id(), self::$object->get_record()->get_sbas_id()); $this->assertEquals(self::$DI['record_1']->get_base_id(), self::$object->get_record()->get_base_id()); } public function testGet_ord() { $this->assertTrue(is_int(self::$object->get_ord())); } public function testGet_entry() { $this->assertInstanceOf('Feed_Entry_Adapter', self::$object->get_entry()); $this->assertEquals(self::$entry->get_id(), self::$object->get_entry()->get_id()); } public function testLoadLatestItems() { $this->deleteEntries(); self::$feed->set_public(true); foreach(range(1, 2) as $i) { Feed_Entry_Item::create(self::$DI['app']['phraseanet.appbox'], self::$entry, self::$DI['record_'.$i]); } $this->assertCount(2, Feed_Entry_Item::loadLatest(self::$DI['app'], 20)); } public function testLoadLatestItemsLessItems() { $this->deleteEntries(); self::$feed->set_public(true); foreach(range(1, 2) as $i) { Feed_Entry_Item::create(self::$DI['app']['phraseanet.appbox'], self::$entry, self::$DI['record_'.$i]); } $this->assertCount(1, Feed_Entry_Item::loadLatest(self::$DI['app'], 1)); } public function testLoadLatestItemsNoPublic() { $this->deleteEntries(); self::$feed->set_public(false); foreach(range(1, 2) as $i) { Feed_Entry_Item::create(self::$DI['app']['phraseanet.appbox'], self::$entry, self::$DI['record_'.$i]); } $this->assertCount(0, Feed_Entry_Item::loadLatest(self::$DI['app'], 20)); } public function testLoadLatestWithDeletedDatabox() { $this->deleteEntries(); self::$feed->set_public(true); $sql = 'INSERT INTO feed_entry_elements (id, entry_id, sbas_id, record_id) VALUES (null, :entry_id, :sbas_id, :record_id)'; $stmt = self::$DI['app']['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute(array(':entry_id' => self::$entry->get_id(), ':sbas_id' => self::$DI['record_1']->get_databox()->get_sbas_id(), ':record_id' => 0)); $stmt->closeCursor(); $this->assertCount(0, Feed_Entry_Item::loadLatest(self::$DI['app'], 20)); } public function testLoadLatestWithDeletedRecord() { $this->deleteEntries(); self::$feed->set_public(true); $sql = 'INSERT INTO feed_entry_elements (id, entry_id, sbas_id, record_id) VALUES (null, :entry_id, :sbas_id, :record_id)'; $stmt = self::$DI['app']['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute(array(':entry_id' => self::$entry->get_id(), ':sbas_id' => -24, ':record_id' => 0)); $stmt->closeCursor(); $this->assertCount(0, Feed_Entry_Item::loadLatest(self::$DI['app'], 20)); } public function testIs_record_in_public_feed() { $this->deleteEntries(); $publicFeed = Feed_Adapter::create(self::$DI['app'], self::$DI['user'], self::$feed_title, self::$feed_subtitle); $publicFeed->set_public(true); $publisher = Feed_Publisher_Adapter::getPublisher(self::$DI['app']['phraseanet.appbox'], $publicFeed, self::$DI['user']); $entry = Feed_Entry_Adapter::create(self::$DI['app'], $publicFeed, $publisher, self::$title, self::$subtitle, self::$author_name, self::$author_email, false); $item = Feed_Entry_Item::create(self::$DI['app']['phraseanet.appbox'], $entry, self::$DI['record_1']); $this->assertTrue(\Feed_Entry_Item::is_record_in_public_feed(self::$DI['app'], self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id())); $publicFeed->set_public(false); $this->assertFalse(\Feed_Entry_Item::is_record_in_public_feed(self::$DI['app'], self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id())); } private function deleteEntries() { $sql = "DELETE FROM feed_entry_elements"; $stmt = self::$DI['app']['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute(); $stmt->closeCursor(); } }