Skip to content

Commit e60c602

Browse files
committed
update tests
1 parent 4e3c363 commit e60c602

1 file changed

Lines changed: 166 additions & 2 deletions

File tree

src/test/java/com/bandwidth/sdk/smoke/MultiChannelApiTest.java

Lines changed: 166 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
import com.bandwidth.sdk.model.MultiChannelChannelListRBMObject;
1919
import com.bandwidth.sdk.model.MultiChannelChannelListRBMObjectAllOfContent;
2020
import com.bandwidth.sdk.model.MultiChannelChannelListRBMResponseObject;
21+
import com.bandwidth.sdk.model.CardWidthEnum;
2122
import com.bandwidth.sdk.model.CreateMultiChannelMessageResponse;
2223
import com.bandwidth.sdk.model.MessageDirectionEnum;
2324
import com.bandwidth.sdk.model.MmsMessageContent;
2425
import com.bandwidth.sdk.model.MmsMessageContentFile;
2526
import com.bandwidth.sdk.model.MultiChannelAction;
2627
import com.bandwidth.sdk.model.RbmMessageContentText;
28+
import com.bandwidth.sdk.model.RbmMessageMedia;
2729
import com.bandwidth.sdk.model.RbmStandaloneCard;
2830
import com.bandwidth.sdk.model.SmsMessageContent;
2931
import com.bandwidth.sdk.model.StandaloneCardOrientationEnum;
@@ -32,9 +34,14 @@
3234
import com.bandwidth.sdk.model.RbmActionDial;
3335
import com.bandwidth.sdk.model.RbmActionTypeEnum;
3436
import com.bandwidth.sdk.model.RbmCardContent;
37+
import com.bandwidth.sdk.model.RbmCardContentMedia;
38+
import com.bandwidth.sdk.model.RbmMediaHeightEnum;
39+
import com.bandwidth.sdk.model.RbmMessageCarouselCard;
40+
import com.bandwidth.sdk.model.RbmMessageContentFile;
3541
import com.bandwidth.sdk.model.RbmMessageContentRichCard;
3642

3743
import org.junit.jupiter.api.BeforeAll;
44+
import org.junit.jupiter.api.Disabled;
3845
import org.junit.jupiter.api.Test;
3946

4047
import java.net.URI;
@@ -166,7 +173,7 @@ public void createMultiChannelMMSMessageTest() throws ApiException {
166173
}
167174

168175
@Test
169-
public void createMultiChannelRBMMessageTest() throws ApiException {
176+
public void createMultiChannelRBMTextMessageTest() throws ApiException {
170177
MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject(
171178
new MultiChannelChannelListRBMObject()
172179
.from(BW_NUMBER)
@@ -237,7 +244,84 @@ public void createMultiChannelRBMMessageTest() throws ApiException {
237244
}
238245

239246
@Test
240-
public void createMultiChannelRBMRichMessageTest() throws ApiException {
247+
@Disabled("skip until messaging updates API")
248+
public void createMultiChannelRBMMediaMessageTest() throws ApiException {
249+
MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject(
250+
new MultiChannelChannelListRBMObject()
251+
.from(BW_NUMBER)
252+
.applicationId(BW_MESSAGING_APPLICATION_ID)
253+
.channel(MultiChannelMessageChannelEnum.RBM)
254+
.content(new MultiChannelChannelListRBMObjectAllOfContent(
255+
new RbmMessageMedia()
256+
.media(new RbmMessageContentFile()
257+
.fileUrl(URI.create("https://www.example.com/image1.png"))
258+
.thumbnailUrl(URI.create("https://www.example.com/thumbnail"))
259+
)
260+
.suggestions(Arrays.asList(
261+
new MultiChannelAction(new RbmActionDial()
262+
.type(RbmActionTypeEnum.DIAL_PHONE)
263+
.text("Call Us")
264+
.postbackData(new byte[]{1, 2, 3})
265+
.phoneNumber(BW_NUMBER)
266+
)
267+
))
268+
)
269+
)
270+
);
271+
272+
MultiChannelMessageRequest rbmRequest = new MultiChannelMessageRequest()
273+
.to(USER_NUMBER)
274+
.tag("tag")
275+
.priority(PriorityEnum.HIGH)
276+
.expiration(OffsetDateTime.now().plusSeconds(60))
277+
.channelList(Arrays.asList(channelListRBMObject));
278+
279+
ApiResponse<CreateMultiChannelMessageResponse> response
280+
= api.createMultiChannelMessageWithHttpInfo(BW_ACCOUNT_ID, rbmRequest);
281+
282+
assertThat(response.getStatusCode(), is(202));
283+
assertThat(response.getData(), instanceOf(CreateMultiChannelMessageResponse.class));
284+
assertThat(response.getData().getLinks(), instanceOf(List.class));
285+
assertThat(response.getData().getData(), instanceOf(MultiChannelMessageResponseData.class));
286+
assertThat(response.getData().getData().getId(), instanceOf(String.class));
287+
assertThat(response.getData().getData().getTime(), instanceOf(OffsetDateTime.class));
288+
assertThat(response.getData().getData().getDirection(), instanceOf(MessageDirectionEnum.class));
289+
assertThat(response.getData().getData().getDirection(), equalTo(MessageDirectionEnum.OUT));
290+
assertThat(response.getData().getData().getTo(), instanceOf(Set.class));
291+
assertThat(response.getData().getData().getTo(), contains(USER_NUMBER));
292+
assertThat(response.getData().getData().getTag(), instanceOf(String.class));
293+
assertThat(response.getData().getData().getPriority(), instanceOf(PriorityEnum.class));
294+
assertThat(response.getData().getData().getPriority(), equalTo(PriorityEnum.HIGH));
295+
assertThat(response.getData().getData().getExpiration(), instanceOf(OffsetDateTime.class));
296+
assertThat(response.getData().getData().getChannelList(), instanceOf(List.class));
297+
assertThat(response.getData().getData().getChannelList().get(0), instanceOf(MultiChannelChannelListResponseObject.class));
298+
assertThat(response.getData().getData().getChannelList().get(0).getActualInstance(), instanceOf(MultiChannelChannelListRBMResponseObject.class));
299+
MultiChannelChannelListRBMResponseObject channelListObject
300+
= response.getData().getData().getChannelList().get(0).getMultiChannelChannelListRBMResponseObject();
301+
assertThat(channelListObject.getFrom(), equalTo(BW_NUMBER));
302+
assertThat(channelListObject.getApplicationId(), equalTo(BW_MESSAGING_APPLICATION_ID));
303+
assertThat(channelListObject.getChannel(), instanceOf(MultiChannelMessageChannelEnum.class));
304+
assertThat(channelListObject.getChannel(), equalTo(MultiChannelMessageChannelEnum.RBM));
305+
assertThat(channelListObject.getContent(), instanceOf(MultiChannelChannelListRBMObjectAllOfContent.class));
306+
assertThat(channelListObject.getContent().getActualInstance(), instanceOf(RbmMessageMedia.class));
307+
RbmMessageMedia rbmContent = channelListObject.getContent().getRbmMessageMedia();
308+
assertThat(rbmContent.getMedia(), instanceOf(RbmMessageContentFile.class));
309+
assertThat(rbmContent.getMedia().getFileUrl(), instanceOf(URI.class));
310+
assertThat(rbmContent.getMedia().getThumbnailUrl(), instanceOf(URI.class));
311+
assertThat(rbmContent.getSuggestions(), instanceOf(List.class));
312+
assertThat(rbmContent.getSuggestions().get(0), instanceOf(MultiChannelAction.class));
313+
assertThat(rbmContent.getSuggestions().get(0).getActualInstance(), instanceOf(RbmActionDial.class));
314+
RbmActionDial rbmActionDial = rbmContent.getSuggestions().get(0).getRbmActionDial();
315+
assertThat(rbmActionDial.getType(), instanceOf(RbmActionTypeEnum.class));
316+
assertThat(rbmActionDial.getType(), equalTo(RbmActionTypeEnum.DIAL_PHONE));
317+
assertThat(rbmActionDial.getText(), instanceOf(String.class));
318+
assertThat(rbmActionDial.getPostbackData(), instanceOf(byte[].class));
319+
assertThat(rbmActionDial.getPhoneNumber(), instanceOf(String.class));
320+
assertThat(channelListObject.getOwner(), equalTo(BW_NUMBER));
321+
}
322+
323+
@Test
324+
public void createMultiChannelRBMRichStandaloneMessageTest() throws ApiException {
241325
MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject(
242326
new MultiChannelChannelListRBMObject()
243327
.from(BW_NUMBER)
@@ -303,4 +387,84 @@ public void createMultiChannelRBMRichMessageTest() throws ApiException {
303387
assertThat(channelListObject.getOwner(), equalTo(BW_NUMBER));
304388
}
305389

390+
@Test
391+
public void createMultiChannelRBMRichCarouselMessageTest() throws ApiException {
392+
MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject(
393+
new MultiChannelChannelListRBMObject()
394+
.from(BW_NUMBER)
395+
.applicationId(BW_MESSAGING_APPLICATION_ID)
396+
.channel(MultiChannelMessageChannelEnum.RBM)
397+
.content(new MultiChannelChannelListRBMObjectAllOfContent(
398+
new RbmMessageContentRichCard(
399+
new RbmMessageCarouselCard()
400+
.cardWidth(CardWidthEnum.MEDIUM)
401+
.cardContents(Arrays.asList(
402+
new RbmCardContent()
403+
.title("Card 1 Title")
404+
.description("Card 1 Description")
405+
.media(new RbmCardContentMedia()
406+
.fileUrl(URI.create("https://www.example.com/image1.png"))
407+
.thumbnailUrl(URI.create("https://www.example.com/thumbnail"))
408+
.height(RbmMediaHeightEnum.TALL)
409+
)
410+
.suggestions(Arrays.asList(
411+
new MultiChannelAction(new RbmActionDial()
412+
.type(RbmActionTypeEnum.DIAL_PHONE)
413+
.text("Call Us")
414+
.postbackData(new byte[]{1, 2, 3})
415+
.phoneNumber(BW_NUMBER)
416+
)
417+
)),
418+
new RbmCardContent()
419+
.title("Card 2 Title")
420+
)
421+
)
422+
)
423+
)
424+
)
425+
);
426+
427+
MultiChannelMessageRequest rbmRequest = new MultiChannelMessageRequest()
428+
.to(USER_NUMBER)
429+
.tag("tag")
430+
.priority(PriorityEnum.HIGH)
431+
.expiration(OffsetDateTime.now().plusSeconds(60))
432+
.channelList(Arrays.asList(channelListRBMObject));
433+
434+
ApiResponse<CreateMultiChannelMessageResponse> response
435+
= api.createMultiChannelMessageWithHttpInfo(BW_ACCOUNT_ID, rbmRequest);
436+
437+
assertThat(response.getStatusCode(), is(202));
438+
assertThat(response.getData(), instanceOf(CreateMultiChannelMessageResponse.class));
439+
assertThat(response.getData().getLinks(), instanceOf(List.class));
440+
assertThat(response.getData().getData(), instanceOf(MultiChannelMessageResponseData.class));
441+
assertThat(response.getData().getData().getId(), instanceOf(String.class));
442+
assertThat(response.getData().getData().getTime(), instanceOf(OffsetDateTime.class));
443+
assertThat(response.getData().getData().getDirection(), instanceOf(MessageDirectionEnum.class));
444+
assertThat(response.getData().getData().getDirection(), equalTo(MessageDirectionEnum.OUT));
445+
assertThat(response.getData().getData().getTo(), instanceOf(Set.class));
446+
assertThat(response.getData().getData().getTo(), contains(USER_NUMBER));
447+
assertThat(response.getData().getData().getTag(), instanceOf(String.class));
448+
assertThat(response.getData().getData().getPriority(), instanceOf(PriorityEnum.class));
449+
assertThat(response.getData().getData().getPriority(), equalTo(PriorityEnum.HIGH));
450+
assertThat(response.getData().getData().getExpiration(), instanceOf(OffsetDateTime.class));
451+
assertThat(response.getData().getData().getChannelList(), instanceOf(List.class));
452+
assertThat(response.getData().getData().getChannelList().get(0), instanceOf(MultiChannelChannelListResponseObject.class));
453+
assertThat(response.getData().getData().getChannelList().get(0).getActualInstance(), instanceOf(MultiChannelChannelListRBMResponseObject.class));
454+
MultiChannelChannelListRBMResponseObject channelListObject
455+
= response.getData().getData().getChannelList().get(0).getMultiChannelChannelListRBMResponseObject();
456+
assertThat(channelListObject.getFrom(), equalTo(BW_NUMBER));
457+
assertThat(channelListObject.getApplicationId(), equalTo(BW_MESSAGING_APPLICATION_ID));
458+
assertThat(channelListObject.getChannel(), instanceOf(MultiChannelMessageChannelEnum.class));
459+
assertThat(channelListObject.getChannel(), equalTo(MultiChannelMessageChannelEnum.RBM));
460+
assertThat(channelListObject.getContent(), instanceOf(MultiChannelChannelListRBMObjectAllOfContent.class));
461+
assertThat(channelListObject.getContent().getActualInstance(), instanceOf(RbmMessageContentRichCard.class));
462+
RbmMessageContentRichCard rbmContent = channelListObject.getContent().getRbmMessageContentRichCard();
463+
assertThat(rbmContent.getActualInstance(), instanceOf(RbmMessageCarouselCard.class));
464+
RbmMessageCarouselCard rbmCard = rbmContent.getRbmMessageCarouselCard();
465+
assertThat(rbmCard.getCardWidth(), instanceOf(CardWidthEnum.class));
466+
assertThat(rbmCard.getCardWidth(), equalTo(CardWidthEnum.MEDIUM));
467+
assertThat(rbmCard.getCardContents(), instanceOf(List.class));
468+
assertThat(channelListObject.getOwner(), equalTo(BW_NUMBER));
469+
}
306470
}

0 commit comments

Comments
 (0)