|
18 | 18 | import com.bandwidth.sdk.model.MultiChannelChannelListRBMObject; |
19 | 19 | import com.bandwidth.sdk.model.MultiChannelChannelListRBMObjectAllOfContent; |
20 | 20 | import com.bandwidth.sdk.model.MultiChannelChannelListRBMResponseObject; |
| 21 | +import com.bandwidth.sdk.model.CardWidthEnum; |
21 | 22 | import com.bandwidth.sdk.model.CreateMultiChannelMessageResponse; |
22 | 23 | import com.bandwidth.sdk.model.MessageDirectionEnum; |
23 | 24 | import com.bandwidth.sdk.model.MmsMessageContent; |
24 | 25 | import com.bandwidth.sdk.model.MmsMessageContentFile; |
25 | 26 | import com.bandwidth.sdk.model.MultiChannelAction; |
26 | 27 | import com.bandwidth.sdk.model.RbmMessageContentText; |
| 28 | +import com.bandwidth.sdk.model.RbmMessageMedia; |
27 | 29 | import com.bandwidth.sdk.model.RbmStandaloneCard; |
28 | 30 | import com.bandwidth.sdk.model.SmsMessageContent; |
29 | 31 | import com.bandwidth.sdk.model.StandaloneCardOrientationEnum; |
|
32 | 34 | import com.bandwidth.sdk.model.RbmActionDial; |
33 | 35 | import com.bandwidth.sdk.model.RbmActionTypeEnum; |
34 | 36 | 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; |
35 | 41 | import com.bandwidth.sdk.model.RbmMessageContentRichCard; |
36 | 42 |
|
37 | 43 | import org.junit.jupiter.api.BeforeAll; |
| 44 | +import org.junit.jupiter.api.Disabled; |
38 | 45 | import org.junit.jupiter.api.Test; |
39 | 46 |
|
40 | 47 | import java.net.URI; |
@@ -166,7 +173,7 @@ public void createMultiChannelMMSMessageTest() throws ApiException { |
166 | 173 | } |
167 | 174 |
|
168 | 175 | @Test |
169 | | - public void createMultiChannelRBMMessageTest() throws ApiException { |
| 176 | + public void createMultiChannelRBMTextMessageTest() throws ApiException { |
170 | 177 | MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject( |
171 | 178 | new MultiChannelChannelListRBMObject() |
172 | 179 | .from(BW_NUMBER) |
@@ -237,7 +244,84 @@ public void createMultiChannelRBMMessageTest() throws ApiException { |
237 | 244 | } |
238 | 245 |
|
239 | 246 | @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 { |
241 | 325 | MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject( |
242 | 326 | new MultiChannelChannelListRBMObject() |
243 | 327 | .from(BW_NUMBER) |
@@ -303,4 +387,84 @@ public void createMultiChannelRBMRichMessageTest() throws ApiException { |
303 | 387 | assertThat(channelListObject.getOwner(), equalTo(BW_NUMBER)); |
304 | 388 | } |
305 | 389 |
|
| 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 | + } |
306 | 470 | } |
0 commit comments