Ejemplo n.º 1
0
 public function test_timeline_cache()
 {
     if (!($list = Model_Timeline::find('all'))) {
         $this->markTestSkipped('No record for test.');
     }
     \Util_Develop::output_test_info(__FILE__, __LINE__);
     foreach ($list as $obj) {
         // test for cache exists.
         $caches = Model_TimelineCache::get4timeline_id($obj->id);
         $this->assertNotEmpty($caches);
         // test for cache count.
         $this->assertCount(2, $caches);
         foreach ($caches as $cache) {
             // test for same values.
             $this->assertEquals($obj->member_id, $cache->member_id);
             $this->assertEquals($obj->member_id_to, $cache->member_id_to);
             $this->assertEquals($obj->group_id, $cache->group_id);
             $this->assertEquals($obj->page_id, $cache->page_id);
             $this->assertEquals($obj->public_flag, $cache->public_flag);
             $this->assertEquals($obj->type, $cache->type);
             $this->assertEquals($obj->comment_count, $cache->comment_count);
             // test for is_follow.
             $this->assertContains($cache->is_follow, array(0, 1));
         }
     }
 }
Ejemplo n.º 2
0
 public static function get_article_main_content($timeline_id, $access_from_member_relation = null, $is_detail = false)
 {
     $timeline = Model_Timeline::find($timeline_id, array('related' => array('member')));
     return render('timeline::_parts/article_main', array('timeline' => $timeline, 'access_from_member_relation' => $access_from_member_relation, 'is_detail' => $is_detail));
 }
Ejemplo n.º 3
0
 public function test_delete_notice()
 {
     // 事前準備
     \Model_MemberConfig::set_value(1, \Notice\Form_MemberConfig::get_name('comment'), 1);
     \Model_MemberConfig::set_value(2, \Notice\Form_MemberConfig::get_name(self::$type_key), 1);
     \Model_MemberConfig::set_value(2, \Notice\Site_Util::get_member_config_name_for_watch_content(self::$type_key), 1);
     \Model_MemberConfig::set_value(3, \Notice\Form_MemberConfig::get_name(self::$type_key), 1);
     \Model_MemberConfig::set_value(3, \Notice\Site_Util::get_member_config_name_for_watch_content(self::$type_key), 1);
     self::$member_id = 1;
     self::set_timeline();
     $timeline_id = self::$timeline_id;
     $foreign_id = self::$timeline_id;
     $notice_count_all_before = \Notice\Model_Notice::get_count();
     $notice_status_count_all_before = \Notice\Model_NoticeStatus::get_count();
     $notice_member_from_count_all_before = \Notice\Model_NoticeMemberFrom::get_count();
     $member_watch_content_count_all_before = \Notice\Model_MemberWatchContent::get_count();
     // 他人がコメント
     $timeline_comment = self::save_comment(2, 'Test comment1.');
     $notice = \Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key));
     $this->assertNotNull($notice);
     // 件数確認
     $this->assertEquals($notice_count_all_before + 1, \Notice\Model_Notice::get_count());
     $this->assertEquals($notice_status_count_all_before + 1, \Notice\Model_NoticeStatus::get_count());
     $this->assertEquals($notice_member_from_count_all_before + 1, \Notice\Model_NoticeMemberFrom::get_count());
     $this->assertEquals($member_watch_content_count_all_before + 1, \Notice\Model_MemberWatchContent::get_count());
     // 関連テーブルのレコードが作成されていることを確認
     $this->assertNotNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(self::$member_id, $notice->id));
     $this->assertNotNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, 2));
     $this->assertNotNull(\Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id(self::$foreign_table, self::$timeline_id, 2));
     $this->assertNotNull(\Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key)));
     // コメントを削除
     $timeline_comment->delete();
     // 件数確認
     $this->assertEquals($notice_count_all_before, \Notice\Model_Notice::get_count());
     $this->assertEquals($notice_status_count_all_before, \Notice\Model_NoticeStatus::get_count());
     $this->assertEquals($notice_member_from_count_all_before, \Notice\Model_NoticeMemberFrom::get_count());
     $this->assertEquals($member_watch_content_count_all_before + 1, \Notice\Model_MemberWatchContent::get_count());
     // watch は解除されない
     // 関連テーブルのレコードが削除されていることを確認
     $this->assertNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(self::$member_id, $notice->id));
     $this->assertNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, 2));
     $this->assertNotNull(\Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id(self::$foreign_table, self::$timeline_id, 2));
     // watch は解除されない
     $this->assertNull(\Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key)));
     // 自分もコメント
     $timeline_comment = self::save_comment(2, 'Test comment2-2.');
     self::save_comment(1, 'Test comment1.');
     $notice = \Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key));
     $this->assertNotNull($notice);
     // 件数確認
     $this->assertEquals($notice_count_all_before + 1, \Notice\Model_Notice::get_count());
     $this->assertEquals($notice_status_count_all_before + 2, \Notice\Model_NoticeStatus::get_count());
     $this->assertEquals($notice_member_from_count_all_before + 2, \Notice\Model_NoticeMemberFrom::get_count());
     $this->assertEquals($member_watch_content_count_all_before + 1, \Notice\Model_MemberWatchContent::get_count());
     // 関連テーブルのレコードが作成されていることを確認
     $this->assertNotNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(2, $notice->id));
     $this->assertNotNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(self::$member_id, $notice->id));
     $this->assertNotNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, 2));
     $this->assertNotNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, self::$member_id));
     $this->assertNotNull(\Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id(self::$foreign_table, self::$timeline_id, 2));
     $this->assertNotNull(\Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key)));
     // コメントを削除
     $timeline_comment->delete();
     // 件数確認
     $this->assertEquals($notice_count_all_before, \Notice\Model_Notice::get_count());
     $this->assertEquals($notice_status_count_all_before, \Notice\Model_NoticeStatus::get_count());
     $this->assertEquals($notice_member_from_count_all_before, \Notice\Model_NoticeMemberFrom::get_count());
     $this->assertEquals($member_watch_content_count_all_before + 1, \Notice\Model_MemberWatchContent::get_count());
     // watch は解除されない
     // 関連テーブルのレコードが削除されていることを確認
     $this->assertNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(2, $notice->id));
     $this->assertNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(self::$member_id, $notice->id));
     $this->assertNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, 2));
     $this->assertNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, self::$member_id));
     $this->assertNotNull(\Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id(self::$foreign_table, self::$timeline_id, 2));
     // watch は解除されない
     $this->assertNull(\Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key)));
     // 他人がコメント
     $timeline_comment = self::save_comment(3, 'Test comment1.');
     $notice = \Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key));
     $this->assertNotNull($notice);
     // timeline 削除
     $timeline = Model_Timeline::find($timeline_id);
     $timeline->delete();
     // 件数確認
     $this->assertEquals($notice_count_all_before, \Notice\Model_Notice::get_count());
     $this->assertEquals($notice_status_count_all_before, \Notice\Model_NoticeStatus::get_count());
     $this->assertEquals($notice_member_from_count_all_before, \Notice\Model_NoticeMemberFrom::get_count());
     $this->assertEquals($member_watch_content_count_all_before, \Notice\Model_MemberWatchContent::get_count());
     // 関連テーブルのレコードが削除されていることを確認
     $this->assertNull(\Notice\Model_NoticeStatus::get4member_id_and_notice_id(self::$member_id, $notice->id));
     $this->assertNull(\Notice\Model_NoticeMemberFrom::get4notice_id_and_member_id($notice->id, 3));
     $this->assertNull(\Notice\Model_MemberWatchContent::get_one4foreign_data_and_member_id(self::$foreign_table, self::$timeline_id, 3));
     $this->assertNull(\Notice\Model_Notice::get_last4foreign_data(self::$foreign_table, self::$timeline_id, \Notice\Site_Util::get_notice_type(self::$type_key)));
 }