22// Licensed under the MIT License.
33package com .azure .communication .phonenumbers ;
44
5+ import com .azure .communication .phonenumbers .implementation .converters .PhoneNumberErrorConverter ;
6+ import com .azure .communication .phonenumbers .implementation .models .CommunicationError ;
7+ import com .azure .communication .phonenumbers .models .BillingFrequency ;
8+ import com .azure .communication .phonenumbers .models .PhoneNumberAdministrativeDivision ;
59import com .azure .communication .phonenumbers .models .PhoneNumberAreaCode ;
610import com .azure .communication .phonenumbers .models .PhoneNumberAssignmentType ;
711import com .azure .communication .phonenumbers .models .PhoneNumberCapabilities ;
812import com .azure .communication .phonenumbers .models .PhoneNumberCapabilityType ;
913import com .azure .communication .phonenumbers .models .PhoneNumberCountry ;
14+ import com .azure .communication .phonenumbers .models .PhoneNumberError ;
1015import com .azure .communication .phonenumbers .models .PhoneNumberLocality ;
1116import com .azure .communication .phonenumbers .models .PhoneNumberOffering ;
1217import com .azure .communication .phonenumbers .models .PhoneNumberOperation ;
2934import reactor .test .StepVerifier ;
3035
3136import java .time .Duration ;
37+ import java .util .ArrayList ;
38+ import java .util .List ;
3239
3340import static org .junit .jupiter .api .Assertions .assertEquals ;
3441import static org .junit .jupiter .api .Assertions .assertNotNull ;
@@ -273,6 +280,7 @@ public void getGeographicAreaCodesWithAAD(HttpClient httpClient) {
273280 .next ())
274281 .assertNext ((PhoneNumberAreaCode areaCodes ) -> {
275282 assertNotNull (areaCodes );
283+ assertNotNull (areaCodes .getAreaCode ());
276284 })
277285 .verifyComplete ();
278286 }
@@ -311,6 +319,7 @@ public void getLocalitiesAdministrativeDivisionWithAAD(HttpClient httpClient) {
311319 .assertNext ((PhoneNumberLocality localityWithAD ) -> {
312320 assertNotNull (localityWithAD );
313321 assertEquals (localityWithAD .getAdministrativeDivision ().getAbbreviatedName (), locality .getAdministrativeDivision ().getAbbreviatedName ());
322+ assertEquals (localityWithAD .getAdministrativeDivision ().getLocalizedName (), locality .getAdministrativeDivision ().getLocalizedName ());
314323 })
315324 .verifyComplete ();
316325 }
@@ -323,6 +332,10 @@ public void getOfferingsWithAAD(HttpClient httpClient) {
323332 .listAvailableOfferings ("US" , null , null ).next ())
324333 .assertNext ((PhoneNumberOffering offering ) -> {
325334 assertNotNull (offering );
335+ offering .getCost ().getBillingFrequency ();
336+ assertNotNull (BillingFrequency .values ());
337+ assertNotNull (offering .getCost ().getCurrencyCode ());
338+ assertNotNull (offering .getCost ().getAmount ());
326339 })
327340 .verifyComplete ();
328341 }
@@ -336,6 +349,15 @@ public void getTollFreeAreaCodes(HttpClient httpClient) {
336349 .expectAccessibleContext ();
337350 }
338351
352+ @ ParameterizedTest
353+ @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
354+ public void getTollFreeAreaCodesWrongCountryCode (HttpClient httpClient ) {
355+ StepVerifier .create (
356+ this .getClientWithConnectionString (httpClient , "listAvailableTollFreeAreaCodes" )
357+ .listAvailableTollFreeAreaCodes ("XX" , PhoneNumberAssignmentType .APPLICATION ).next ())
358+ .expectError ();
359+ }
360+
339361 @ ParameterizedTest
340362 @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
341363 public void getGeographicAreaCodes (HttpClient httpClient ) {
@@ -348,10 +370,22 @@ public void getGeographicAreaCodes(HttpClient httpClient) {
348370 .next ())
349371 .assertNext ((PhoneNumberAreaCode areaCodes ) -> {
350372 assertNotNull (areaCodes );
373+ assertNotNull (areaCodes .getAreaCode ());
351374 })
352375 .verifyComplete ();
353376 }
354377
378+ @ ParameterizedTest
379+ @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
380+ public void getGeographicAreaCodesWronglocality (HttpClient httpClient ) {
381+ StepVerifier .create (
382+ this .getClientWithConnectionString (httpClient , "listAvailableGeographicAreaCodes" )
383+ .listAvailableGeographicAreaCodes ("US" , PhoneNumberAssignmentType .PERSON ,
384+ "XX" , "XX" )
385+ .next ())
386+ .expectError ();
387+ }
388+
355389 @ ParameterizedTest
356390 @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
357391 public void getCountries (HttpClient httpClient ) {
@@ -379,19 +413,30 @@ public void getLocalities(HttpClient httpClient) {
379413 @ ParameterizedTest
380414 @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
381415 public void getLocalitiesAdministrativeDivision (HttpClient httpClient ) {
382- String localityAdministraiveDivision = this .getClientWithConnectionString (httpClient , "listAvailableLocalities" )
383- .listAvailableLocalities ("US" , null ).blockFirst ().getAdministrativeDivision (). getAbbreviatedName () ;
416+ PhoneNumberAdministrativeDivision localityAdministraiveDivision = this .getClientWithConnectionString (httpClient , "listAvailableLocalities" )
417+ .listAvailableLocalities ("US" , null ).blockFirst ().getAdministrativeDivision ();
384418 StepVerifier .create (
385419 this .getClientWithConnectionString (httpClient , "listAvailableLocalities" )
386- .listAvailableLocalities ("US" , localityAdministraiveDivision ).next ())
420+ .listAvailableLocalities ("US" , localityAdministraiveDivision . getAbbreviatedName () ).next ())
387421 .assertNext ((PhoneNumberLocality locality ) -> {
388422 assertNotNull (locality );
389423 assertEquals (locality .getAdministrativeDivision ().getAbbreviatedName (),
390- localityAdministraiveDivision );
424+ localityAdministraiveDivision .getAbbreviatedName ());
425+ assertEquals (locality .getAdministrativeDivision ().getLocalizedName (),
426+ localityAdministraiveDivision .getLocalizedName ());
391427 })
392428 .verifyComplete ();
393429 }
394430
431+ @ ParameterizedTest
432+ @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
433+ public void getLocalitiesInvalidAdministrativeDivision (HttpClient httpClient ) {
434+ StepVerifier .create (
435+ this .getClientWithConnectionString (httpClient , "listAvailableLocalities" )
436+ .listAvailableLocalities ("US" , "null" ).next ())
437+ .expectError ();
438+ }
439+
395440 @ ParameterizedTest
396441 @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
397442 public void getOfferings (HttpClient httpClient ) {
@@ -400,10 +445,41 @@ public void getOfferings(HttpClient httpClient) {
400445 .listAvailableOfferings ("US" , null , null ).next ())
401446 .assertNext ((PhoneNumberOffering offering ) -> {
402447 assertNotNull (offering );
448+ offering .getCost ().getBillingFrequency ();
449+ assertNotNull (BillingFrequency .values ());
450+ assertNotNull (offering .getCost ().getCurrencyCode ());
451+ assertNotNull (offering .getCost ().getAmount ());
403452 })
404453 .verifyComplete ();
405454 }
406455
456+ @ ParameterizedTest
457+ @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
458+ public void convertCommunicationError (HttpClient httpClient ) {
459+ List <PhoneNumberError > details = new ArrayList <PhoneNumberError >();
460+ CommunicationError communicationError = new CommunicationError ();
461+ communicationError .setCode ("500" );
462+ communicationError .setMessage ("Communication Error" );
463+
464+ PhoneNumberError phoneNumberError = new PhoneNumberError (
465+ communicationError .getMessage (),
466+ communicationError .getCode (),
467+ communicationError .getTarget (),
468+ details
469+ );
470+ PhoneNumberError error = PhoneNumberErrorConverter .convert (communicationError );
471+ assertEquals (phoneNumberError .getCode (), error .getCode ());
472+ assertEquals (phoneNumberError .getMessage (), error .getMessage ());
473+ }
474+
475+ @ ParameterizedTest
476+ @ MethodSource ("com.azure.core.test.TestBase#getHttpClients" )
477+ public void convertCommunicationErrorWithNull (HttpClient httpClient ) {
478+ CommunicationError communicationError = null ;
479+ PhoneNumberError error = PhoneNumberErrorConverter .convert (communicationError );
480+ assertEquals (null , error );
481+ }
482+
407483 private PollerFlux <PhoneNumberOperation , PhoneNumberSearchResult > beginSearchAvailablePhoneNumbersHelper (
408484 PhoneNumbersAsyncClient client , boolean withOptions ) {
409485 PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities ();
0 commit comments