AccountTest.java revision 064f86b8dad1300e99457c9672a9ebbb6694ae4e
145f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelpackage com.xtremelabs.robolectric.shadows;
245f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
345f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport android.accounts.Account;
445f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport android.os.Parcel;
545f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
645f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport org.junit.Test;
745f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport org.junit.runner.RunWith;
845f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
945f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport static org.hamcrest.CoreMatchers.equalTo;
108239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkelimport static org.hamcrest.CoreMatchers.not;
1145f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelimport static org.junit.Assert.assertThat;
1245f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
1345f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel@RunWith(WithTestDefaultsRunner.class)
1445f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkelpublic class AccountTest {
1545f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
1645f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    @Test
1745f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    public void shouldHaveStringsConstructor() throws Exception {
1845f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        Account account = new Account("name", "type");
1945f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
2045f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        assertThat(account.name, equalTo("name"));
2145f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        assertThat(account.type, equalTo("type"));
2245f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    }
2345f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
2445f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    @Test
2545f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    public void shouldHaveParcelConstructor() throws Exception {
2645f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        Parcel p = Parcel.obtain();
2745f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        p.writeString("name");
2845f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        p.writeString("type");
2945f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
30064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen        p.setDataPosition(0);
31064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen
3245f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        Account account = new Account(p);
3345f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        assertThat(account.name, equalTo("name"));
3445f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        assertThat(account.type, equalTo("type"));
3545f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    }
3645f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
3745f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    @Test(expected = IllegalArgumentException.class)
3845f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    public void shouldThrowIfNameIsEmpty() throws Exception {
3945f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        new Account("", "type");
4045f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    }
4145f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
4245f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    @Test(expected = IllegalArgumentException.class)
4345f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    public void shouldThrowIfTypeIsEmpty() throws Exception {
4445f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        new Account("name", "");
4545f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    }
4645f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel
4745f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    @Test
4845f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    public void shouldHaveToString() throws Exception {
4945f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        Account account = new Account("name", "type");
5045f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel        assertThat(account.toString(), equalTo("Account {name=name, type=type}"));
5145f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel    }
528239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel
538239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel    @Test
548239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel    public void shouldProvideEqualAndHashCode() throws Exception {
558239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel        assertThat(new Account("a", "b"), equalTo(new Account("a", "b")));
568239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel        assertThat(new Account("a", "b"), not(equalTo(new Account("c", "b"))));
578239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel        assertThat(new Account("a", "b").hashCode(), equalTo(new Account("a", "b").hashCode()));
588239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel        assertThat(new Account("a", "b").hashCode(), not(equalTo(new Account("c", "b").hashCode())));
598239cec3cb888ed2c71d4bb9cebf63432a3d06deJan Berkel    }
6045f283443d645cb7f321b1a0f3eaf28407b699ccJan Berkel}
61