Files
FOSSBilling/tests/integration/bb-modules/mod_forum/Api_AdminTest.php
T
2014-11-03 09:00:47 +02:00

249 lines
8.2 KiB
PHP

<?php
/**
* @group Core
*/
class Api_Admin_ForumTest extends BBDbApiTestCase
{
protected $_initialSeedFile = 'mod_forum.xml';
public function testProfile()
{
$data = array(
'client_id' => 1,
);
$array = $this->api_admin->forum_profile_get($data);
$this->assertInternalType('array', $array);
}
public function testForum()
{
$data = array(
'page' => 1,
'per_page' => 10,
);
$array = $this->api_admin->forum_get_categories($data);
$this->assertInternalType('array', $array);
$array = $this->api_admin->forum_get_pairs($data);
$this->assertInternalType('array', $array);
$data = array(
'title' => 'New forum as',
);
$id = $this->api_admin->forum_create($data);
$this->assertTrue(is_numeric($id));
$data = array(
'id' => $id,
);
$array = $this->api_admin->forum_get($data);
$this->assertInternalType('array', $array);
$data['title'] = 'new forum title';
$data['description'] = 'new forum desc';
$bool = $this->api_admin->forum_update($data);
$this->assertTrue($bool);
$bool = $this->api_admin->forum_delete($data);
$this->assertTrue($bool);
$data['priority'] = array(
1 => 10
);
$bool = $this->api_admin->forum_update_priority($data);
$this->assertTrue($bool);
}
public function testForumTopic()
{
$data = array(
'forum_id' => '1',
'title' => 'phpunit topic' . uniqid(),
'message' => 'message in this topic',
);
$id = $this->api_admin->forum_topic_create($data);
$this->assertInternalType('int', $id);
$data = array(
'id' => $id,
);
$array = $this->api_admin->forum_topic_get($data);
$this->assertInternalType('array', $array);
$data = array(
'id' => $id,
);
$array = $this->api_admin->forum_topic_get($data);
$this->assertInternalType('array', $array);
$data['title'] = 'new title';
$bool = $this->api_admin->forum_topic_update($data);
$this->assertTrue($bool);
$bool = $this->api_admin->forum_topic_delete($data);
$this->assertTrue($bool);
}
public function testForumTopicMessage()
{
$data = array(
'forum_topic_id' => 1,
);
$array = $this->api_admin->forum_message_get_list($data);
$this->assertInternalType('array', $array);
$data = array(
'forum_topic_id' => 1,
'message' => 'this is my reply message',
);
$int = $this->api_admin->forum_message_create($data);
$this->assertInternalType('int', $int);
$array = $this->api_admin->forum_message_get(array('id' => $int));
$this->assertInternalType('array', $array);
$data['id'] = $int;
$data['message'] = 'updated message';
$bool = $this->api_admin->forum_message_update($data);
$this->assertTrue($bool);
$data = array(
'forum_topic_id' => 1,
'message' => 'this is my second message',
);
$int = $this->api_admin->forum_message_create($data);
$this->assertInternalType('int', $int);
$data['id'] = $int;
$bool = $this->api_admin->forum_message_delete($data);
$this->assertTrue($bool);
}
public function testPoints()
{
$this->api_admin->hook_batch_connect();
//enable points system
$config = array(
'ext' => 'mod_forum',
'forum_points_enable' => true,
'points' => 1,
'post_length' => 5,
'points_forums' => array(1),
);
$bool = $this->api_admin->extension_config_save($config);
$this->assertTrue($bool);
$client_id = 1;
$data = array('client_id' => $client_id);
$profile = $this->api_admin->forum_profile_get($data);
$this->assertEquals(0, $profile['points']);
$data['amount'] = 15.63;
$bool = $this->api_admin->forum_points_update($data);
$this->assertTrue($bool);
$profile = $this->api_admin->forum_profile_get($data);
$this->assertEquals(15.63, $profile['points']);
$data['amount'] = 0;
$bool = $this->api_admin->forum_points_update($data);
$this->assertTrue($bool);
$profile = $this->api_admin->forum_profile_get($data);
$this->assertEquals(0, $profile['points']);
$post = array(
'forum_topic_id' => 1,
'message' => 'this is my reply message',
);
$int = $this->api_client->forum_post_message($post);
$this->assertInternalType('int', $int);
$profile = $this->api_admin->forum_profile_get($data);
$this->assertEquals(1, $profile['points']);
$profile = $this->api_admin->forum_profile_get($data);
$this->assertEquals(1, $profile['points']);
$post = array(
'forum_topic_id' => 1,
'message' => 'this is my reply message',
);
$int = $this->api_client->forum_post_message($post);
$this->assertInternalType('int', $int);
$this->api_admin->forum_points_deduct(array('id' => $int));
}
public function testForumGetList()
{
$data = array(
'page' => 1,
'per_page' => 10,
);
$array = $this->api_admin->forum_get_list($data);
$this->assertInternalType('array', $array);
$this->assertArrayHasKey('list', $array);
$list = $array['list'];
$this->assertInternalType('array', $list);
if (count($list)) {
$item = $list[0];
$this->assertArrayHasKey('id', $item);
$this->assertArrayHasKey('category', $item);
$this->assertArrayHasKey('title', $item);
$this->assertArrayHasKey('description', $item);
$this->assertArrayHasKey('slug', $item);
$this->assertArrayHasKey('status', $item);
$this->assertArrayHasKey('priority', $item);
$this->assertArrayHasKey('created_at', $item);
$this->assertArrayHasKey('updated_at', $item);
$this->assertArrayHasKey('stats', $item);
$stats = $item['stats'];
$this->assertInternalType('array', $stats);
$this->assertArrayHasKey('topics_count', $stats);
$this->assertArrayHasKey('posts_count', $stats);
$this->assertArrayHasKey('views_count', $stats);
}
}
public function testForumTopicGetList()
{
$data = array(
'forum_id' => 1,
);
$array = $this->api_admin->forum_topic_get_list($data);
$this->assertInternalType('array', $array);
$this->assertArrayHasKey('list', $array);
$list = $array['list'];
$this->assertInternalType('array', $list);
if (count($list)) {
$item = $list[0];
$this->assertArrayHasKey('id', $item);
$this->assertArrayHasKey('title', $item);
$this->assertArrayHasKey('slug', $item);
$this->assertArrayHasKey('status', $item);
$this->assertArrayHasKey('sticky', $item);
$this->assertArrayHasKey('created_at', $item);
$this->assertArrayHasKey('updated_at', $item);
$this->assertArrayHasKey('forum', $item);
$forum = $item['forum'];
$this->assertInternalType('array', $forum);
$this->assertArrayHasKey('id', $forum);
$this->assertArrayHasKey('slug', $forum);
$this->assertArrayHasKey('title', $forum);
$this->assertArrayHasKey('category', $forum);
$this->assertArrayHasKey('stats', $item);
$stats = $item['stats'];
$this->assertInternalType('array', $stats);
$this->assertArrayHasKey('posts_count', $stats);
$this->assertArrayHasKey('views_count', $stats);
}
}
}