use of com.azure.android.communication.chat.models.ListParticipantsOptions in project azure-sdk-for-android by Azure.
the class ChatThreadAsyncClientTest method canAddSingleParticipant.
@ParameterizedTest
@MethodSource("com.azure.android.core.test.TestBase#getHttpClients")
public void canAddSingleParticipant(HttpClient httpClient) throws InterruptedException, ExecutionException {
setupTest(httpClient);
this.chatThreadClient.addParticipant(new ChatParticipant().setCommunicationIdentifier(this.firstThreadParticipant)).get();
PagedAsyncStream<ChatParticipant> participantPagedAsyncStream = this.chatThreadClient.listParticipants(new ListParticipantsOptions(), null);
CountDownLatch latch = new CountDownLatch(1);
List<ChatParticipant> returnedParticipants = new ArrayList<ChatParticipant>();
participantPagedAsyncStream.forEach(new AsyncStreamHandler<ChatParticipant>() {
@Override
public void onNext(ChatParticipant participant) {
returnedParticipants.add(participant);
}
@Override
public void onError(Throwable throwable) {
latch.countDown();
}
@Override
public void onComplete() {
latch.countDown();
}
});
awaitOnLatch(latch, "canAddSingleParticipant");
assertTrue(returnedParticipants.size() > 0);
for (ChatParticipant participant : returnedParticipants) {
assertNotNull(participant);
assertNotNull(participant.getDisplayName());
assertNotNull(participant.getShareHistoryTime());
assertNotNull(participant.getCommunicationIdentifier());
assertTrue(participant.getCommunicationIdentifier() instanceof CommunicationUserIdentifier);
assertNotNull(((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId());
}
if (TEST_MODE != TestMode.PLAYBACK) {
assertTrue(super.checkParticipantsListContainsParticipantId(returnedParticipants, this.firstThreadParticipant.getId()));
}
}
use of com.azure.android.communication.chat.models.ListParticipantsOptions in project azure-sdk-for-android by Azure.
the class ChatThreadAsyncClientTest method canAddSingleParticipantWithResponse.
@ParameterizedTest
@MethodSource("com.azure.android.core.test.TestBase#getHttpClients")
public void canAddSingleParticipantWithResponse(HttpClient httpClient) throws InterruptedException, ExecutionException {
setupTest(httpClient);
Response<Void> addResponse = this.chatThreadClient.addParticipantWithResponse(new ChatParticipant().setCommunicationIdentifier(this.firstThreadParticipant), null).get();
assertNotNull(addResponse);
assertEquals(201, addResponse.getStatusCode());
PagedAsyncStream<ChatParticipant> participantPagedAsyncStream = this.chatThreadClient.listParticipants(new ListParticipantsOptions(), null);
CountDownLatch latch = new CountDownLatch(1);
List<ChatParticipant> returnedParticipants = new ArrayList<ChatParticipant>();
participantPagedAsyncStream.forEach(new AsyncStreamHandler<ChatParticipant>() {
@Override
public void onNext(ChatParticipant participant) {
returnedParticipants.add(participant);
}
@Override
public void onError(Throwable throwable) {
latch.countDown();
}
@Override
public void onComplete() {
latch.countDown();
}
});
awaitOnLatch(latch, "canAddSingleParticipantWithResponse");
assertTrue(returnedParticipants.size() > 0);
for (ChatParticipant participant : returnedParticipants) {
assertNotNull(participant);
assertNotNull(participant.getDisplayName());
assertNotNull(participant.getShareHistoryTime());
assertNotNull(participant.getCommunicationIdentifier());
assertTrue(participant.getCommunicationIdentifier() instanceof CommunicationUserIdentifier);
assertNotNull(((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId());
}
if (TEST_MODE != TestMode.PLAYBACK) {
assertTrue(super.checkParticipantsListContainsParticipantId(returnedParticipants, this.firstThreadParticipant.getId()));
}
}
use of com.azure.android.communication.chat.models.ListParticipantsOptions in project azure-sdk-for-android by Azure.
the class ChatThreadAsyncClientTest method canAddListAndRemoveParticipants.
@ParameterizedTest
@MethodSource("com.azure.android.core.test.TestBase#getHttpClients")
public void canAddListAndRemoveParticipants(HttpClient httpClient) throws InterruptedException, ExecutionException {
setupTest(httpClient);
Iterable<ChatParticipant> participants = addParticipants(this.firstThreadParticipant.getId(), this.secondThreadParticipant.getId());
this.chatThreadClient.addParticipants(participants).get();
PagedAsyncStream<ChatParticipant> participantPagedAsyncStream = this.chatThreadClient.listParticipants(new ListParticipantsOptions(), null);
CountDownLatch latch = new CountDownLatch(1);
List<ChatParticipant> returnedParticipants = new ArrayList<ChatParticipant>();
participantPagedAsyncStream.forEach(new AsyncStreamHandler<ChatParticipant>() {
@Override
public void onNext(ChatParticipant participant) {
returnedParticipants.add(participant);
}
@Override
public void onError(Throwable throwable) {
latch.countDown();
}
@Override
public void onComplete() {
latch.countDown();
}
});
awaitOnLatch(latch, "canAddListAndRemoveParticipants");
assertTrue(returnedParticipants.size() > 0);
for (ChatParticipant participant : returnedParticipants) {
assertNotNull(participant);
assertNotNull(participant.getDisplayName());
assertNotNull(participant.getShareHistoryTime());
assertNotNull(participant.getCommunicationIdentifier());
assertTrue(participant.getCommunicationIdentifier() instanceof CommunicationUserIdentifier);
assertNotNull(((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId());
}
if (TEST_MODE != TestMode.PLAYBACK) {
for (ChatParticipant participant : participants) {
assertTrue(super.checkParticipantsListContainsParticipantId(returnedParticipants, ((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId()));
}
for (ChatParticipant participant : participants) {
final String id = ((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId();
assertNotNull(id);
if (!id.equals(this.firstThreadParticipant.getId())) {
this.chatThreadClient.removeParticipant(participant.getCommunicationIdentifier()).get();
}
}
}
}
use of com.azure.android.communication.chat.models.ListParticipantsOptions in project azure-sdk-for-android by Azure.
the class MainActivity method listParticipants.
public void listParticipants(View view) {
if (chatThreadAsyncClient == null) {
createChatThreadAsyncClient();
}
if (chatThreadAsyncClient != null) {
// The maximum number of participants to be returned per page, optional.
int maxPageSize = 10;
// Skips participants up to a specified position in response.
int skip = 0;
// Options to pass to the list method.
ListParticipantsOptions listParticipantsOptions = new ListParticipantsOptions().setMaxPageSize(maxPageSize).setSkip(skip);
try {
PagedAsyncStream<ChatParticipant> participantPagedAsyncStream = chatThreadAsyncClient.listParticipants(new ListParticipantsOptions(), null);
StringJoiner participantsStringJoiner = new StringJoiner("\nParticipant: ", "", "");
CountDownLatch latch = new CountDownLatch(1);
participantPagedAsyncStream.forEach(new AsyncStreamHandler<ChatParticipant>() {
@Override
public void onNext(ChatParticipant participant) {
participantsStringJoiner.add(participant.getDisplayName());
}
@Override
public void onError(Throwable throwable) {
latch.countDown();
}
@Override
public void onComplete() {
latch.countDown();
}
});
awaitOnLatch(latch);
logAndToast(participantsStringJoiner.toString());
} catch (Exception e) {
logAndToast("Listing participants failed: " + e.getMessage());
}
} else {
logAndToast("ChatThreadAsyncClient creation failed");
}
}
use of com.azure.android.communication.chat.models.ListParticipantsOptions in project azure-sdk-for-android by Azure.
the class ChatThreadAsyncClientTest method canAddListAndRemoveParticipantsWithResponse.
@ParameterizedTest
@MethodSource("com.azure.android.core.test.TestBase#getHttpClients")
public void canAddListAndRemoveParticipantsWithResponse(HttpClient httpClient) throws InterruptedException, ExecutionException {
setupTest(httpClient);
Iterable<ChatParticipant> participants = addParticipants(this.firstThreadParticipant.getId(), this.secondThreadParticipant.getId());
Response<AddChatParticipantsResult> addResponse = this.chatThreadClient.addParticipantsWithResponse(participants, null).get();
assertNotNull(addResponse);
assertEquals(201, addResponse.getStatusCode());
PagedAsyncStream<ChatParticipant> participantPagedAsyncStream = this.chatThreadClient.listParticipants(new ListParticipantsOptions(), null);
CountDownLatch latch = new CountDownLatch(1);
List<ChatParticipant> returnedParticipants = new ArrayList<ChatParticipant>();
participantPagedAsyncStream.forEach(new AsyncStreamHandler<ChatParticipant>() {
@Override
public void onNext(ChatParticipant participant) {
returnedParticipants.add(participant);
}
@Override
public void onError(Throwable throwable) {
latch.countDown();
}
@Override
public void onComplete() {
latch.countDown();
}
});
awaitOnLatch(latch, "canAddListAndRemoveParticipantsWithResponse");
assertTrue(returnedParticipants.size() > 0);
for (ChatParticipant participant : returnedParticipants) {
assertNotNull(participant);
assertNotNull(participant.getDisplayName());
assertNotNull(participant.getShareHistoryTime());
assertNotNull(participant.getCommunicationIdentifier());
assertTrue(participant.getCommunicationIdentifier() instanceof CommunicationUserIdentifier);
assertNotNull(((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId());
}
if (TEST_MODE != TestMode.PLAYBACK) {
for (ChatParticipant participant : participants) {
assertTrue(super.checkParticipantsListContainsParticipantId(returnedParticipants, ((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId()));
}
for (ChatParticipant participant : participants) {
final String id = ((CommunicationUserIdentifier) participant.getCommunicationIdentifier()).getId();
assertNotNull(id);
if (!id.equals(this.firstThreadParticipant.getId())) {
this.chatThreadClient.removeParticipant(participant.getCommunicationIdentifier()).get();
}
}
}
}
Aggregations