MDL-63408 core_message: New functions to manage conversation members
New functions created to add, remove and count conversation members
This commit is contained in:
committed by
Mark Nelson
parent
f2ac0a3e5b
commit
623048af81
@@ -2133,6 +2133,204 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||
\core_message\api::get_conversation_between_users([$user1->id, $user2->id]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test count_conversation_members for non existing conversation.
|
||||
*/
|
||||
public function test_count_conversation_members_no_existing_conversation() {
|
||||
$this->assertEquals(0,
|
||||
\core_message\api::count_conversation_members(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test count_conversation_members for existing conversation.
|
||||
*/
|
||||
public function test_count_conversation_members_existing_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertEquals(2,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_members_to_conversation for existing conversation.
|
||||
*/
|
||||
public function test_add_members_to_existing_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user3->id], $conversationid));
|
||||
$this->assertEquals(3,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_members_to_conversation for non existing conversation.
|
||||
*/
|
||||
public function test_add_members_to_no_existing_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
|
||||
// Throw dml_missing_record_exception for non existing conversation.
|
||||
$this->expectException('dml_missing_record_exception');
|
||||
\core_message\api::add_members_to_conversation([$user1->id], 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_member_to_conversation for non existing user.
|
||||
*/
|
||||
public function test_add_members_to_no_existing_user() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
// Don't throw an error for non existing user, but don't add it as a member.
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([0], $conversationid));
|
||||
$this->assertEquals(2,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_members_to_conversation for current conversation member.
|
||||
*/
|
||||
public function test_add_members_to_current_conversation_member() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
// Don't add as a member a user that is already conversation member.
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user1->id], $conversationid));
|
||||
$this->assertEquals(2,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_members_to_conversation for multiple users.
|
||||
*/
|
||||
public function test_add_members_for_multiple_users() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
$user4 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user3->id, $user4->id], $conversationid));
|
||||
$this->assertEquals(4,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test add_members_to_conversation for multiple users, included non existing and current conversation members
|
||||
*/
|
||||
public function test_add_members_for_multiple_not_valid_users() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
// Don't throw errors, but don't add as members users don't exist or are already conversation members.
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user3->id, $user1->id, 0], $conversationid));
|
||||
$this->assertEquals(3,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test remove_members_from_conversation for existing conversation.
|
||||
*/
|
||||
public function test_remove_members_from_existing_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::remove_members_from_conversation([$user1->id], $conversationid));
|
||||
$this->assertEquals(1,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test remove_members_from_conversation for non existing conversation.
|
||||
*/
|
||||
public function test_remove_members_from_no_existing_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
|
||||
// Throw dml_missing_record_exception for non existing conversation.
|
||||
$this->expectException('dml_missing_record_exception');
|
||||
\core_message\api::remove_members_from_conversation([$user1->id], 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test remove_members_from_conversation for non existing user.
|
||||
*/
|
||||
public function test_remove_members_for_no_existing_user() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::remove_members_from_conversation([0], $conversationid));
|
||||
$this->assertEquals(2,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test remove_members_from_conversation for multiple users.
|
||||
*/
|
||||
public function test_remove_members_for_multiple_users() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
$user4 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user3->id, $user4->id], $conversationid));
|
||||
$this->assertNull(\core_message\api::remove_members_from_conversation([$user3->id, $user4->id], $conversationid));
|
||||
$this->assertEquals(2,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test remove_members_from_conversation for multiple non valid users.
|
||||
*/
|
||||
public function test_remove_members_for_multiple_no_valid_users() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
$user3 = self::getDataGenerator()->create_user();
|
||||
$user4 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
|
||||
$this->assertNull(\core_message\api::add_members_to_conversation([$user3->id], $conversationid));
|
||||
$this->assertNull(
|
||||
\core_message\api::remove_members_from_conversation([$user2->id, $user3->id, $user4->id, 0], $conversationid)
|
||||
);
|
||||
$this->assertEquals(1,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test count_conversation_members for empty conversation.
|
||||
*/
|
||||
public function test_count_conversation_members_empty_conversation() {
|
||||
$user1 = self::getDataGenerator()->create_user();
|
||||
$user2 = self::getDataGenerator()->create_user();
|
||||
|
||||
$conversationid = \core_message\api::create_conversation_between_users([$user1->id, $user2->id]);
|
||||
$this->assertNull(\core_message\api::remove_members_from_conversation([$user1->id, $user2->id], $conversationid));
|
||||
|
||||
$this->assertEquals(0,
|
||||
\core_message\api::count_conversation_members($conversationid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test can create a contact request.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user