/** * @test */ public function メンバーの更新をする() { $memberList = new MembersCollection(); $member1 = new Member(); $member1->role = 'admin'; $member1->account = new User(); $member1->account->accountId = 1; $memberList->add($member1); $member11 = new Member(); $member11->role = 'admin'; $member11->account = new User(); $member11->account->accountId = 11; $memberList->add($member11); $member2 = new Member(); $member2->role = 'member'; $member2->account = new User(); $member2->account->accountId = 2; $memberList->add($member2); $member22 = new Member(); $member22->role = 'member'; $member22->account = new User(); $member22->account->accountId = 22; $memberList->add($member22); $member3 = new Member(); $member3->role = 'readonly'; $member3->account = new User(); $member3->account->accountId = 3; $memberList->add($member3); $member33 = new Member(); $member33->role = 'readonly'; $member33->account = new User(); $member33->account->accountId = 33; $memberList->add($member33); $httpClient = Phake::mock(ClientInterface::class); Phake::when($httpClient)->put(['rooms/{roomId}/members/', ['roomId' => 1]], $this->isType('array'))->thenReturn(['admin' => [1, 11], 'member' => [2, 22], 'readonly' => [3, 33]]); $members = new Members(1, $httpClient); $members->update($memberList); Phake::verify($httpClient, Phake::times(1))->put(['rooms/{roomId}/members', ['roomId' => 1]], ['body' => ['members_admin_ids' => '1,11', 'members_member_ids' => '2,22', 'members_readonly_ids' => '3,33']]); }
/** * グループチャットを新規作成 * @param Room $room * @param MembersCollection $members * @return Room */ public function create(Room $room, MembersCollection $members) { $result = $this->client->post('rooms', ['body' => ['name' => $room->name, 'description' => $room->description, 'members_admin_ids' => implode(',', $members->getAdminIds()), 'members_member_ids' => implode(',', $members->getMemberIds()), 'members_readonly_ids' => implode(',', $members->getReadonlyIds())]])->json(); $room->roomId = $result['room_id']; return $room; }
/** * @param MembersCollection $members */ public function update(MembersCollection $members) { $options = ['body' => ['members_admin_ids' => implode(',', $members->getAdminIds()), 'members_member_ids' => implode(',', $members->getMemberIds()), 'members_readonly_ids' => implode(',', $members->getReadonlyIds())]]; $this->client->put(['rooms/{roomId}/members', ['roomId' => $this->roomId]], $options); }