@@ -301,4 +301,95 @@ public void testRegexMatch2() {
301301 }
302302
303303
304+ @ Test
305+ public void testRegexMatchFromNullSrcOrg () {
306+ Sid srcSid = null ;
307+ Sid destSid = Sid .generate (Sid .Type .ORGANIZATION );
308+ String regex = "12.*" ;
309+ String longestRegex = "123.*" ;
310+ List <IncomingPhoneNumber > emptyNumbers = new ArrayList ();
311+ List <IncomingPhoneNumber > numbers = new ArrayList ();
312+ final IncomingPhoneNumber .Builder builder = IncomingPhoneNumber .builder ();
313+ builder .setPhoneNumber (regex );
314+ numbers .add (builder .build ());
315+ builder .setPhoneNumber (longestRegex );
316+ numbers .add (builder .build ());
317+ IncomingPhoneNumbersDao numDao = Mockito .mock (IncomingPhoneNumbersDao .class );
318+ when (numDao .getTotalIncomingPhoneNumbers ((IncomingPhoneNumberFilter ) any ())).
319+ thenReturn (1 ,1 );
320+ when (numDao .getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ())).
321+ thenReturn (emptyNumbers , emptyNumbers );
322+ when (numDao .getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ())).
323+ thenReturn (numbers );
324+ InOrder inOrder = inOrder (numDao );
325+ NumberSelectorService service = new NumberSelectorService (numDao );
326+
327+ IncomingPhoneNumber found = service .searchNumber ("1234" , srcSid , destSid );
328+
329+ Assert .assertNotNull (found );
330+ Assert .assertEquals (longestRegex , found .getPhoneNumber ());
331+ inOrder .verify (numDao , times (2 )).getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ());
332+ inOrder .verify (numDao , times (1 )).getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ());
333+ }
334+
335+ @ Test
336+ public void testRegexFailToMatchBecauseOfPhone () {
337+ Sid srcSid = null ;
338+ Sid destSid = Sid .generate (Sid .Type .ORGANIZATION );
339+ String regex = "12.*" ;
340+ String longestRegex = "123.*" ;
341+ List <IncomingPhoneNumber > emptyNumbers = new ArrayList ();
342+ List <IncomingPhoneNumber > numbers = new ArrayList ();
343+ final IncomingPhoneNumber .Builder builder = IncomingPhoneNumber .builder ();
344+ builder .setPhoneNumber (regex );
345+ numbers .add (builder .build ());
346+ builder .setPhoneNumber (longestRegex );
347+ numbers .add (builder .build ());
348+ IncomingPhoneNumbersDao numDao = Mockito .mock (IncomingPhoneNumbersDao .class );
349+ when (numDao .getTotalIncomingPhoneNumbers ((IncomingPhoneNumberFilter ) any ())).
350+ thenReturn (1 ,1 );
351+ when (numDao .getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ())).
352+ thenReturn (emptyNumbers , emptyNumbers );
353+ when (numDao .getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ())).
354+ thenReturn (numbers );
355+ InOrder inOrder = inOrder (numDao );
356+ NumberSelectorService service = new NumberSelectorService (numDao );
357+
358+ IncomingPhoneNumber found = service .searchNumber ("7788" , srcSid , destSid );
359+
360+ Assert .assertNull (found );
361+ inOrder .verify (numDao , times (4 )).getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ());
362+ inOrder .verify (numDao , never ()).getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ());
363+ }
364+
365+
366+ @ Test
367+ public void testRegexFailToMatchBecauseDestOrgNull () {
368+ Sid srcSid = Sid .generate (Sid .Type .ORGANIZATION );
369+ Sid destSid = null ;
370+ String regex = "12.*" ;
371+ String longestRegex = "123.*" ;
372+ List <IncomingPhoneNumber > emptyNumbers = new ArrayList ();
373+ List <IncomingPhoneNumber > numbers = new ArrayList ();
374+ final IncomingPhoneNumber .Builder builder = IncomingPhoneNumber .builder ();
375+ builder .setPhoneNumber (regex );
376+ numbers .add (builder .build ());
377+ builder .setPhoneNumber (longestRegex );
378+ numbers .add (builder .build ());
379+ IncomingPhoneNumbersDao numDao = Mockito .mock (IncomingPhoneNumbersDao .class );
380+ when (numDao .getTotalIncomingPhoneNumbers ((IncomingPhoneNumberFilter ) any ())).
381+ thenReturn (1 ,1 );
382+ when (numDao .getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ())).
383+ thenReturn (emptyNumbers , emptyNumbers );
384+ when (numDao .getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ())).
385+ thenReturn (numbers );
386+ InOrder inOrder = inOrder (numDao );
387+ NumberSelectorService service = new NumberSelectorService (numDao );
388+
389+ IncomingPhoneNumber found = service .searchNumber ("1234" , srcSid , destSid );
390+
391+ Assert .assertNull (found );
392+ inOrder .verify (numDao , times (2 )).getIncomingPhoneNumbersByFilter ((IncomingPhoneNumberFilter ) any ());
393+ inOrder .verify (numDao , never ()).getIncomingPhoneNumbersRegex ((IncomingPhoneNumberFilter ) any ());
394+ }
304395}
0 commit comments