Skip to content

Commit 34dacc4

Browse files
More tests to improve coverage and fix LiveTests (Azure#22435)
* event related unit test to improve test coverage * fix(unit-test): add unit tests to improve code coverage * event related unit test * fix(unit-tests): remove var declarators * event related unit test * event related unit test * fix(unit-tests): fix issue with List.to, increase coverage * fix(unit-tests): remove var declarations * fix(unit-tests): fix issue with infered generic in annonymous type * fix(test-config): attempt to remove int * fix(test-config): override communication test template to remove int * fix(test-config): override communication test template to remove int * fix(test-config): override communication test template to remove int * fix(unit-tests): update random generation of groupIds * added newline at end of config file * fix(tests): update test.yml to be parameterized, force live mode * fix(unit-tests): update random generation of groupIds * Revert "fix(unit-tests): update yml files" This reverts commit 375df59. * fix(tests): fix yaml * fix(tests): fix yaml * fix(unit-tests): update random generation of groupIds * fix(tests): fix yaml * fix(tests): more yml * fix(tests): fix yaml Co-authored-by: Christian Whitehead <chrwhit@microsoft.com>
1 parent 6249e9a commit 34dacc4

File tree

13 files changed

+1139
-59
lines changed

13 files changed

+1139
-59
lines changed

sdk/communication/azure-communication-callingserver/src/main/java/com/azure/communication/callingserver/CallConnectionAsync.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -162,30 +162,6 @@ public Mono<Response<PlayAudioResult>> playAudioWithResponse(
162162
return playAudioWithResponseInternal(audioFileUri, playAudioOptions, null);
163163
}
164164

165-
Mono<Response<PlayAudioResult>> playAudioWithResponseInternal(
166-
String audioFileUri,
167-
boolean loop,
168-
String audioFileId,
169-
String callbackUri,
170-
String operationContext,
171-
Context context) {
172-
try {
173-
Objects.requireNonNull(audioFileUri, "'audioFileUri' cannot be null.");
174-
PlayAudioRequest playAudioRequest =
175-
new PlayAudioRequest()
176-
.setAudioFileUri(audioFileUri)
177-
.setLoop(loop)
178-
.setAudioFileId(audioFileId)
179-
.setOperationContext(operationContext)
180-
.setCallbackUri(callbackUri);
181-
return playAudioWithResponseInternal(playAudioRequest, context);
182-
} catch (RuntimeException ex) {
183-
return monoError(logger, ex);
184-
}
185-
186-
187-
}
188-
189165
Mono<Response<PlayAudioResult>> playAudioWithResponseInternal(
190166
String audioFileUri,
191167
PlayAudioOptions playAudioOptions,

sdk/communication/azure-communication-callingserver/src/main/java/com/azure/communication/callingserver/ServerCallAsync.java

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -543,31 +543,6 @@ public Mono<Response<PlayAudioResult>> playAudioWithResponse(
543543
return playAudioWithResponseInternal(audioFileUri, playAudioOptions, null);
544544
}
545545

546-
Mono<Response<PlayAudioResult>> playAudioWithResponseInternal(
547-
String audioFileUri,
548-
String audioFileId,
549-
String callbackUri,
550-
String operationContext,
551-
Context context) {
552-
try {
553-
Objects.requireNonNull(audioFileUri, "'audioFileUri' cannot be null.");
554-
555-
//Currently we do not support loop on the audio media for out-call, thus setting the loop to false
556-
PlayAudioRequest playAudioRequest =
557-
new PlayAudioRequest()
558-
.setAudioFileUri(audioFileUri)
559-
.setLoop(false)
560-
.setAudioFileId(audioFileId)
561-
.setOperationContext(operationContext)
562-
.setCallbackUri(callbackUri);
563-
return playAudioWithResponse(playAudioRequest, context);
564-
} catch (RuntimeException ex) {
565-
return monoError(logger, ex);
566-
}
567-
568-
569-
}
570-
571546
Mono<Response<PlayAudioResult>> playAudioWithResponseInternal(
572547
String audioFileUri,
573548
PlayAudioOptions playAudioOptions,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.callingserver;
5+
6+
import static org.junit.jupiter.api.Assertions.assertEquals;
7+
import static org.junit.jupiter.api.Assertions.assertNotNull;
8+
9+
import java.util.ArrayList;
10+
import java.util.Arrays;
11+
import java.util.Collections;
12+
import java.util.List;
13+
import java.util.AbstractMap.SimpleEntry;
14+
15+
import com.azure.communication.callingserver.implementation.models.ResultInfoInternal;
16+
import com.azure.communication.callingserver.models.AddParticipantResult;
17+
import com.azure.communication.callingserver.models.CreateCallOptions;
18+
import com.azure.communication.callingserver.models.EventSubscriptionType;
19+
import com.azure.communication.callingserver.models.JoinCallOptions;
20+
import com.azure.communication.callingserver.models.MediaType;
21+
import com.azure.communication.callingserver.models.OperationStatus;
22+
import com.azure.communication.callingserver.models.PlayAudioOptions;
23+
import com.azure.communication.callingserver.models.PlayAudioResult;
24+
import com.azure.communication.common.CommunicationIdentifier;
25+
import com.azure.communication.common.CommunicationUserIdentifier;
26+
import com.azure.core.http.rest.Response;
27+
import com.azure.core.util.Context;
28+
29+
import org.junit.jupiter.api.Test;
30+
31+
public class CallConnectionAsyncUnitTests {
32+
33+
static final String CALL_CONNECTION_ID = "callConnectionId";
34+
static final String OPERATION_ID = "operationId";
35+
static final String NEW_PARTICIPANT_ID = "newParticipantId";
36+
37+
@Test
38+
public void createConnectionWithResponse() {
39+
CallingServerAsyncClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerAsyncClient(new ArrayList<SimpleEntry<String, Integer>>(
40+
Arrays.asList(
41+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CallingServerResponseMocker.CALL_CONNECTION_ID), 201)
42+
)));
43+
44+
CommunicationUserIdentifier sourceUser = new CommunicationUserIdentifier("id");
45+
List<CommunicationIdentifier> targetUsers = new ArrayList<CommunicationIdentifier>();
46+
targetUsers.add(new CommunicationUserIdentifier("id2"));
47+
48+
CreateCallOptions options = new CreateCallOptions(
49+
"serverCallId",
50+
Collections.singletonList(MediaType.AUDIO),
51+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
52+
53+
Response<CallConnectionAsync> callConnectionAsyncResponse = callingServerAsyncClient.createCallConnectionWithResponse(sourceUser, targetUsers, options).block();
54+
assertEquals(201, callConnectionAsyncResponse.getStatusCode());
55+
assertNotNull(callConnectionAsyncResponse.getValue());
56+
}
57+
58+
@Test
59+
public void getCallConnectionCallingServerAsyncClient() {
60+
CallingServerAsyncClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerAsyncClient(new ArrayList<SimpleEntry<String, Integer>>(
61+
Arrays.asList()));
62+
63+
CallConnectionAsync callConnection = callingServerAsyncClient.getCallConnection(CallingServerResponseMocker.CALL_CONNECTION_ID);
64+
assertNotNull(callConnection);
65+
}
66+
67+
@Test
68+
public void playAudioWithResponse() {
69+
CallConnectionAsync callConnectionAsync = getPlayAudioCallConnection();
70+
71+
PlayAudioOptions playAudioOptions = new PlayAudioOptions().setAudioFileId("audioFileId").setCallbackUri("callbackUri");
72+
Response<PlayAudioResult> playAudioResultResponse = callConnectionAsync.playAudioWithResponse("audioFileUri", playAudioOptions).block();
73+
assertEquals(202, playAudioResultResponse.getStatusCode());
74+
}
75+
76+
@Test
77+
public void playAudio() {
78+
CallConnectionAsync callConnectionAsync = getPlayAudioCallConnection();
79+
80+
PlayAudioOptions playAudioOptions = new PlayAudioOptions().setAudioFileId("audioFileId").setCallbackUri("callbackUri");
81+
PlayAudioResult playAudioResult = callConnectionAsync.playAudio("audioFileUri", playAudioOptions).block();
82+
assertEquals(OperationStatus.COMPLETED, playAudioResult.getStatus());
83+
}
84+
85+
@Test
86+
public void playAudioWithoutPlayAudioOptions202() {
87+
CallConnectionAsync callConnectionAsync = getPlayAudioCallConnection();
88+
89+
PlayAudioResult playAudioResult = callConnectionAsync.playAudio("audioFileUri", false, "audioFieldId", "callbackUri", "operationContext").block();
90+
assertEquals(OperationStatus.COMPLETED, playAudioResult.getStatus());
91+
}
92+
93+
@Test
94+
public void appParticipantWithResponse() {
95+
CallConnectionAsync callConnectionAsync = getAddParticipantCallConnection();
96+
97+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
98+
Response<AddParticipantResult> addParticipantResultResponse = callConnectionAsync.addParticipantWithResponse(user, "alternateCallerId", "operationContext", Context.NONE).block();
99+
assertEquals(202, addParticipantResultResponse.getStatusCode());
100+
AddParticipantResult addParticipantResult = addParticipantResultResponse.getValue();
101+
assertEquals(user.getId(), addParticipantResult.getParticipantId());
102+
}
103+
104+
@Test
105+
public void appParticipant() {
106+
CallConnectionAsync callConnectionAsync = getAddParticipantCallConnection();
107+
108+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
109+
AddParticipantResult addParticipantResult = callConnectionAsync.addParticipant(user, "alternateCallerId", "operationContext").block();
110+
assertEquals(user.getId(), addParticipantResult.getParticipantId());
111+
}
112+
113+
@Test
114+
public void joinCallWithResponse() {
115+
CallingServerAsyncClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerAsyncClient(new ArrayList<SimpleEntry<String, Integer>>(
116+
Arrays.asList(
117+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateJoinCallResult(NEW_PARTICIPANT_ID), 202)
118+
)));
119+
120+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
121+
JoinCallOptions options = new JoinCallOptions(
122+
CallingServerResponseMocker.URI_CALLBACK,
123+
Collections.singletonList(MediaType.VIDEO),
124+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
125+
Response<CallConnectionAsync> callConnectionAsyncResponse = callingServerAsyncClient.joinCallWithResponse(CallingServerResponseMocker.SERVER_CALL_ID, (CommunicationIdentifier) user, options).block();
126+
assertEquals(202, callConnectionAsyncResponse.getStatusCode());
127+
assertNotNull(callConnectionAsyncResponse.getValue());
128+
}
129+
130+
@Test
131+
public void joinCall() {
132+
CallingServerAsyncClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerAsyncClient(new ArrayList<SimpleEntry<String, Integer>>(
133+
Arrays.asList(
134+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateJoinCallResult(NEW_PARTICIPANT_ID), 202)
135+
)));
136+
137+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
138+
JoinCallOptions options = new JoinCallOptions(
139+
CallingServerResponseMocker.URI_CALLBACK,
140+
Collections.singletonList(MediaType.VIDEO),
141+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
142+
CallConnectionAsync callConnectionAsync = callingServerAsyncClient.joinCall(CallingServerResponseMocker.SERVER_CALL_ID, (CommunicationIdentifier) user, options).block();
143+
assertNotNull(callConnectionAsync);
144+
}
145+
146+
private CallConnectionAsync getPlayAudioCallConnection() {
147+
return CallingServerResponseMocker.getCallConnectionAsync(new ArrayList<SimpleEntry<String, Integer>>(
148+
Arrays.asList(
149+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CALL_CONNECTION_ID), 201),
150+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generatePlayAudioResult(
151+
OPERATION_ID,
152+
OperationStatus.COMPLETED,
153+
new ResultInfoInternal().setCode(202).setSubcode(0).setMessage("message")),
154+
202)
155+
)));
156+
}
157+
158+
private CallConnectionAsync getAddParticipantCallConnection() {
159+
return CallingServerResponseMocker.getCallConnectionAsync(new ArrayList<SimpleEntry<String, Integer>>(
160+
Arrays.asList(
161+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CALL_CONNECTION_ID), 201),
162+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateAddParticipantResult(NEW_PARTICIPANT_ID), 202)
163+
)));
164+
}
165+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
package com.azure.communication.callingserver;
5+
6+
import static org.junit.jupiter.api.Assertions.assertEquals;
7+
import static org.junit.jupiter.api.Assertions.assertNotNull;
8+
9+
import java.util.ArrayList;
10+
import java.util.Arrays;
11+
import java.util.Collections;
12+
import java.util.List;
13+
import java.util.AbstractMap.SimpleEntry;
14+
15+
import com.azure.communication.callingserver.implementation.models.ResultInfoInternal;
16+
import com.azure.communication.callingserver.models.AddParticipantResult;
17+
import com.azure.communication.callingserver.models.CreateCallOptions;
18+
import com.azure.communication.callingserver.models.EventSubscriptionType;
19+
import com.azure.communication.callingserver.models.JoinCallOptions;
20+
import com.azure.communication.callingserver.models.MediaType;
21+
import com.azure.communication.callingserver.models.OperationStatus;
22+
import com.azure.communication.callingserver.models.PlayAudioOptions;
23+
import com.azure.communication.callingserver.models.PlayAudioResult;
24+
import com.azure.communication.common.CommunicationIdentifier;
25+
import com.azure.communication.common.CommunicationUserIdentifier;
26+
import com.azure.core.http.rest.Response;
27+
import com.azure.core.util.Context;
28+
29+
import org.junit.jupiter.api.Test;
30+
31+
public class CallConnectionUnitTests {
32+
33+
static final String CALL_CONNECTION_ID = "callConnectionId";
34+
static final String OPERATION_ID = "operationId";
35+
static final String NEW_PARTICIPANT_ID = "newParticipantId";
36+
37+
@Test
38+
public void createConnectionWithResponse() {
39+
CallingServerClient callingServerClient = CallingServerResponseMocker.getCallingServerClient(new ArrayList<SimpleEntry<String, Integer>>(
40+
Arrays.asList(
41+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CallingServerResponseMocker.CALL_CONNECTION_ID), 201)
42+
)));
43+
44+
CommunicationUserIdentifier sourceUser = new CommunicationUserIdentifier("id");
45+
List<CommunicationIdentifier> targetUsers = new ArrayList<CommunicationIdentifier>();
46+
targetUsers.add(new CommunicationUserIdentifier("id2"));
47+
48+
CreateCallOptions options = new CreateCallOptions(
49+
"serverCallId",
50+
Collections.singletonList(MediaType.AUDIO),
51+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
52+
53+
Response<CallConnection> callConnectionAsyncResponse = callingServerClient.createCallConnectionWithResponse(sourceUser, targetUsers, options, Context.NONE);
54+
assertEquals(201, callConnectionAsyncResponse.getStatusCode());
55+
assertNotNull(callConnectionAsyncResponse.getValue());
56+
}
57+
58+
@Test
59+
public void getCallConnectionCallingServerClient() {
60+
CallingServerClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerClient(new ArrayList<SimpleEntry<String, Integer>>(
61+
Arrays.asList()));
62+
63+
CallConnection callConnection = callingServerAsyncClient.getCallConnection(CallingServerResponseMocker.CALL_CONNECTION_ID);
64+
assertNotNull(callConnection);
65+
}
66+
67+
@Test
68+
public void playAudioWithResponse() {
69+
CallConnection callConnection = getCallConnection();
70+
71+
PlayAudioOptions playAudioOptions = new PlayAudioOptions().setAudioFileId("audioFileId").setCallbackUri("callbackUri");
72+
Response<PlayAudioResult> playAudioResultResponse = callConnection.playAudioWithResponse("audioFileUri", playAudioOptions, Context.NONE);
73+
assertEquals(202, playAudioResultResponse.getStatusCode());
74+
PlayAudioResult playAudioResult = playAudioResultResponse.getValue();
75+
assertEquals(OperationStatus.COMPLETED, playAudioResult.getStatus());
76+
}
77+
78+
@Test
79+
public void playAudio() {
80+
CallConnection callConnection = getCallConnection();
81+
82+
PlayAudioOptions playAudioOptions = new PlayAudioOptions().setAudioFileId("audioFileId").setCallbackUri("callbackUri");
83+
PlayAudioResult playAudioResult = callConnection.playAudio("audioFileUri", playAudioOptions);
84+
assertEquals(OperationStatus.COMPLETED, playAudioResult.getStatus());
85+
}
86+
87+
@Test
88+
public void playAudioWithoutPlayAudioOptions() {
89+
CallConnection callConnection = getCallConnection();
90+
91+
PlayAudioResult playAudioResult = callConnection.playAudio("audioFileUri", false, "audioFieldId", "callbackUri", "operationContext");
92+
assertEquals(OperationStatus.COMPLETED, playAudioResult.getStatus());
93+
}
94+
95+
@Test
96+
public void appParticipantWithResponse() {
97+
CallConnection callConnection = getAddParticipantCallConnection();
98+
99+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
100+
Response<AddParticipantResult> addParticipantResultResponse = callConnection.addParticipantWithResponse(user, "alternateCallerId", "operationContext", Context.NONE);
101+
assertEquals(202, addParticipantResultResponse.getStatusCode());
102+
AddParticipantResult addParticipantResult = addParticipantResultResponse.getValue();
103+
assertEquals(user.getId(), addParticipantResult.getParticipantId());
104+
}
105+
106+
@Test
107+
public void appParticipant() {
108+
CallConnection callConnection = getAddParticipantCallConnection();
109+
110+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
111+
AddParticipantResult addParticipantResult = callConnection.addParticipant(user, "alternateCallerId", "operationContext");
112+
assertEquals(user.getId(), addParticipantResult.getParticipantId());
113+
}
114+
115+
@Test
116+
public void joinCall() {
117+
CallingServerClient callingServerClient = CallingServerResponseMocker.getCallingServerClient(new ArrayList<SimpleEntry<String, Integer>>(
118+
Arrays.asList(
119+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateJoinCallResult(NEW_PARTICIPANT_ID), 202)
120+
)));
121+
122+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
123+
JoinCallOptions options = new JoinCallOptions(
124+
CallingServerResponseMocker.URI_CALLBACK,
125+
Collections.singletonList(MediaType.VIDEO),
126+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
127+
CallConnection callConnection = callingServerClient.joinCall(CallingServerResponseMocker.SERVER_CALL_ID, (CommunicationIdentifier) user, options);
128+
assertNotNull(callConnection);
129+
}
130+
131+
@Test
132+
public void joinCallWithResponse() {
133+
CallingServerClient callingServerAsyncClient = CallingServerResponseMocker.getCallingServerClient(new ArrayList<SimpleEntry<String, Integer>>(
134+
Arrays.asList(
135+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateJoinCallResult(NEW_PARTICIPANT_ID), 202)
136+
)));
137+
138+
CommunicationUserIdentifier user = new CommunicationUserIdentifier(NEW_PARTICIPANT_ID);
139+
JoinCallOptions options = new JoinCallOptions(
140+
CallingServerResponseMocker.URI_CALLBACK,
141+
Collections.singletonList(MediaType.VIDEO),
142+
Collections.singletonList(EventSubscriptionType.PARTICIPANTS_UPDATED));
143+
Response<CallConnection> callConnectionResponse = callingServerAsyncClient.joinCallWithResponse(CallingServerResponseMocker.SERVER_CALL_ID, (CommunicationIdentifier) user, options, Context.NONE);
144+
assertEquals(202, callConnectionResponse.getStatusCode());
145+
assertNotNull(callConnectionResponse.getValue());
146+
}
147+
148+
private CallConnection getCallConnection() {
149+
return CallingServerResponseMocker.getCallConnection(new ArrayList<SimpleEntry<String, Integer>>(
150+
Arrays.asList(
151+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CALL_CONNECTION_ID), 201),
152+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generatePlayAudioResult(
153+
OPERATION_ID,
154+
OperationStatus.COMPLETED,
155+
new ResultInfoInternal().setCode(202).setSubcode(0).setMessage("message")),
156+
202)
157+
)));
158+
}
159+
160+
private CallConnection getAddParticipantCallConnection() {
161+
return CallingServerResponseMocker.getCallConnection(new ArrayList<SimpleEntry<String, Integer>>(
162+
Arrays.asList(
163+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateCreateCallResult(CALL_CONNECTION_ID), 201),
164+
new SimpleEntry<String, Integer>(CallingServerResponseMocker.generateAddParticipantResult(NEW_PARTICIPANT_ID), 202)
165+
)));
166+
}
167+
}

0 commit comments

Comments
 (0)