/** * 1. create user A then create group A * 3. create user B, join the group, user A quit the group * 4. delete group & created users */ public function testChatroom() { $userTest = new UserTest(); $userOne = $userTest->createUser(); $group = $this->createGroup($userOne, Group::TYPE_CHATROOM); $this->listGroups($group, $userOne, GroupUser::STATUS_AGREE); $this->listUsers($group->id, null, $userOne); $group = $this->updateGroup($userOne, $group); $userTwo = $userTest->createUser(); $this->joinGroup($userTwo, $group); $this->listGroups($group, $userTwo, GroupUser::STATUS_AGREE); $this->listUsers($group->id, null, $userTwo); $this->quitGroup($userTwo, $group); $this->quitGroup($userOne, $group); $userTest->deleteUser($userOne); $userTest->deleteUser($userTwo); }
/** * 1. create two user * 2. a user ask for b to make friend * 3. b user agree this ask * 4. get friends for a, check whether there is b;get friends for b, check whether there is a * 5. a create group named 'a new group', then move b to this group, and update group name, then delete this group * 6. delete two user and there relations */ public function testRoster() { // 1 $userTest = new UserTest(); $userOne = $userTest->createUser(); $userTwo = $userTest->createUser(); // 2 $rosterA = $this->requestForFriend($userOne, $userTwo); //3 $this->receiveRequest($userTwo, $userOne); // 4 $resp = $this->request('/api/roster/list', ['uid' => $userOne->id, 'token' => $userOne->token, 'status' => Roster::STATUS_AGREE]); $this->assertResponseNotEmptyList($resp); $rosters = $this->getResponseBody($resp); $found = false; foreach ($rosters as $r) { if ($r['target_id'] == $userTwo->id) { $found = true; break; } } self::assertTrue($found); // 5 $resp = $this->request('/api/roster/create_group', ['uid' => $userOne->id, 'token' => $userOne->token, 'name' => 'a new group', 'rank' => 1], true); $this->assertRequestSuccess($resp); $groupRoster = ConvertUtil::arrayToObject($this->getResponseBody($resp), new RosterGroup(), ['group_id' => 'id', 'name', 'uid', 'rank']); RosterManager::getInstance()->getRoster($rosterA); $resp = $this->request('/api/roster/update', ['uid' => $userOne->id, 'token' => $userOne->token, 'target_id' => $userTwo->id, 'status' => $rosterA->status, 'remark' => 'updated remark', 'group_id' => $groupRoster->id, 'rank' => 0], true); $this->assertRequestSuccess($resp); $resp = $this->request('/api/roster/update_group', ['uid' => $userOne->id, 'token' => $userOne->token, 'group_id' => $groupRoster->id, 'name' => 'a updated name', 'rank' => 2], true); $this->assertRequestSuccess($resp); $this->assertRequestSuccess($this->request('/api/roster/delete_group', ['uid' => $userOne->id, 'token' => $userOne->token, 'group_id' => $groupRoster->id], true)); // 6 $userTest->deleteUser($userOne); $userTest->deleteUser($userTwo); RosterManager::getInstance()->deleteRoster($rosterA); }