1 package org.robolectric.shadows; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.ComponentName; 6 import android.content.Context; 7 import android.os.Build.VERSION_CODES; 8 import android.os.Bundle; 9 import android.os.Parcel; 10 import android.telecom.PhoneAccountHandle; 11 import android.telephony.VisualVoicemailSms; 12 import androidx.test.core.app.ApplicationProvider; 13 import androidx.test.ext.junit.runners.AndroidJUnit4; 14 import org.junit.Before; 15 import org.junit.Test; 16 import org.junit.runner.RunWith; 17 import org.robolectric.annotation.Config; 18 import org.robolectric.shadow.api.Shadow; 19 20 /** Tests for {@link ShadowVisualVoicemailSms} */ 21 @RunWith(AndroidJUnit4.class) 22 @Config(minSdk = VERSION_CODES.O) 23 public class ShadowVisualVoicemailSmsTest { 24 25 private final Context appContext = ApplicationProvider.getApplicationContext(); 26 private final PhoneAccountHandle phoneAccountHandle = 27 new PhoneAccountHandle(new ComponentName(appContext, Object.class), "foo"); 28 29 private VisualVoicemailSms sms; 30 private ShadowVisualVoicemailSms shadowSms; 31 32 @Before setup()33 public void setup() { 34 sms = Shadow.newInstanceOf(VisualVoicemailSms.class); 35 shadowSms = Shadow.extract(sms); 36 } 37 38 @Test setPhoneAccountHandle_setsPhoneAccountHandle()39 public void setPhoneAccountHandle_setsPhoneAccountHandle() { 40 shadowSms.setPhoneAccountHandle(phoneAccountHandle); 41 42 assertThat(sms.getPhoneAccountHandle()).isEqualTo(phoneAccountHandle); 43 } 44 45 @Test setPrefix_setsPrefix()46 public void setPrefix_setsPrefix() { 47 shadowSms.setPrefix("prefix"); 48 49 assertThat(sms.getPrefix()).isEqualTo("prefix"); 50 } 51 52 @Test setFields_setsFields()53 public void setFields_setsFields() { 54 Bundle bundle = new Bundle(); 55 bundle.putString("key", "value"); 56 shadowSms.setFields(bundle); 57 58 assertThat(sms.getFields()).isEqualTo(bundle); 59 } 60 61 @Test setMessageBody_setsMessageBody()62 public void setMessageBody_setsMessageBody() { 63 shadowSms.setMessageBody("messageBody"); 64 65 assertThat(sms.getMessageBody()).isEqualTo("messageBody"); 66 } 67 68 @Test parcelable_unparcelable()69 public void parcelable_unparcelable() { 70 Bundle bundle = new Bundle(); 71 bundle.putString("key", "value"); 72 shadowSms 73 .setPhoneAccountHandle(phoneAccountHandle) 74 .setPrefix("prefix") 75 .setFields(bundle) 76 .setMessageBody("messageBody"); 77 78 Parcel parcel = Parcel.obtain(); 79 sms.writeToParcel(parcel, 0); 80 parcel.setDataPosition(0); 81 VisualVoicemailSms newSms = VisualVoicemailSms.CREATOR.createFromParcel(parcel); 82 83 assertThat(newSms.getPhoneAccountHandle()).isEqualTo(phoneAccountHandle); 84 assertThat(newSms.getPrefix()).isEqualTo("prefix"); 85 assertThat(newSms.getFields().getString("key")).isEqualTo("value"); 86 assertThat(newSms.getMessageBody()).isEqualTo("messageBody"); 87 } 88 } 89