package org.whispersystems.textsecuregcm.tests.sms; import com.google.common.base.Optional; import com.twilio.sdk.TwilioRestException; import junit.framework.TestCase; import org.whispersystems.textsecuregcm.sms.NexmoSmsSender; import org.whispersystems.textsecuregcm.sms.SmsSender; import org.whispersystems.textsecuregcm.sms.TwilioSmsSender; import java.io.IOException; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; public class TwilioFallbackTest extends TestCase { private NexmoSmsSender nexmoSender = mock(NexmoSmsSender.class ); private TwilioSmsSender twilioSender = mock(TwilioSmsSender.class); @Override protected void setUp() throws IOException, TwilioRestException { doThrow(new TwilioRestException("foo", 404)).when(twilioSender).deliverSmsVerification(anyString(), anyString()); doThrow(new TwilioRestException("bar", 405)).when(twilioSender).deliverVoxVerification(anyString(), anyString()); } public void testNexmoSmsFallback() throws IOException, TwilioRestException { SmsSender smsSender = new SmsSender(twilioSender, Optional.of(nexmoSender), true); smsSender.deliverSmsVerification("+442223334444", "123-456"); verify(nexmoSender).deliverSmsVerification("+442223334444", "123-456"); verify(twilioSender).deliverSmsVerification("+442223334444", "123-456"); } public void testNexmoVoxFallback() throws IOException, TwilioRestException { SmsSender smsSender = new SmsSender(twilioSender, Optional.of(nexmoSender), true); smsSender.deliverVoxVerification("+442223334444", "123-456"); verify(nexmoSender).deliverVoxVerification("+442223334444", "123-456"); verify(twilioSender).deliverVoxVerification("+442223334444", "123-456"); } }