Home | History | Annotate | Download | only in shadows
      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
     33   public void setup() {
     34     sms = Shadow.newInstanceOf(VisualVoicemailSms.class);
     35     shadowSms = Shadow.extract(sms);
     36   }
     37 
     38   @Test
     39   public void setPhoneAccountHandle_setsPhoneAccountHandle() {
     40     shadowSms.setPhoneAccountHandle(phoneAccountHandle);
     41 
     42     assertThat(sms.getPhoneAccountHandle()).isEqualTo(phoneAccountHandle);
     43   }
     44 
     45   @Test
     46   public void setPrefix_setsPrefix() {
     47     shadowSms.setPrefix("prefix");
     48 
     49     assertThat(sms.getPrefix()).isEqualTo("prefix");
     50   }
     51 
     52   @Test
     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
     62   public void setMessageBody_setsMessageBody() {
     63     shadowSms.setMessageBody("messageBody");
     64 
     65     assertThat(sms.getMessageBody()).isEqualTo("messageBody");
     66   }
     67 
     68   @Test
     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