Home | History | Annotate | Download | only in shadows
      1 package com.xtremelabs.robolectric.shadows;
      2 
      3 import android.accounts.Account;
      4 import android.os.Parcel;
      5 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
      6 import org.junit.Test;
      7 import org.junit.runner.RunWith;
      8 
      9 import static org.hamcrest.CoreMatchers.equalTo;
     10 import static org.hamcrest.CoreMatchers.not;
     11 import static org.junit.Assert.assertThat;
     12 
     13 @RunWith(WithTestDefaultsRunner.class)
     14 public class AccountTest {
     15 
     16     @Test
     17     public void shouldHaveStringsConstructor() throws Exception {
     18         Account account = new Account("name", "type");
     19 
     20         assertThat(account.name, equalTo("name"));
     21         assertThat(account.type, equalTo("type"));
     22     }
     23 
     24     @Test
     25     public void shouldHaveParcelConstructor() throws Exception {
     26         Parcel p = Parcel.obtain();
     27         p.writeString("name");
     28         p.writeString("type");
     29 
     30         p.setDataPosition(0);
     31 
     32         Account account = new Account(p);
     33         assertThat(account.name, equalTo("name"));
     34         assertThat(account.type, equalTo("type"));
     35     }
     36 
     37     @Test
     38     public void shouldHaveCreator() throws Exception {
     39         Account expected = new Account("name", "type");
     40         Parcel p = Parcel.obtain();
     41         expected.writeToParcel(p, 0);
     42 
     43         p.setDataPosition(0);
     44 
     45         Account actual = Account.CREATOR.createFromParcel(p);
     46         assertThat(expected, equalTo(actual));
     47     }
     48 
     49     @Test(expected = IllegalArgumentException.class)
     50     public void shouldThrowIfNameIsEmpty() throws Exception {
     51         new Account("", "type");
     52     }
     53 
     54     @Test(expected = IllegalArgumentException.class)
     55     public void shouldThrowIfTypeIsEmpty() throws Exception {
     56         new Account("name", "");
     57     }
     58 
     59     @Test
     60     public void shouldHaveToString() throws Exception {
     61         Account account = new Account("name", "type");
     62         assertThat(account.toString(), equalTo("Account {name=name, type=type}"));
     63     }
     64 
     65     @Test
     66     public void shouldProvideEqualAndHashCode() throws Exception {
     67         assertThat(new Account("a", "b"), equalTo(new Account("a", "b")));
     68         assertThat(new Account("a", "b"), not(equalTo(new Account("c", "b"))));
     69         assertThat(new Account("a", "b").hashCode(), equalTo(new Account("a", "b").hashCode()));
     70         assertThat(new Account("a", "b").hashCode(), not(equalTo(new Account("c", "b").hashCode())));
     71     }
     72 }
     73