• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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