blob: abb69c84d7ca2992e1230af44d5fe16414b2b284 [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.accounts.Account;
import android.os.Parcel;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
@RunWith(WithTestDefaultsRunner.class)
public class AccountTest {
@Test
public void shouldHaveStringsConstructor() throws Exception {
Account account = new Account("name", "type");
assertThat(account.name, equalTo("name"));
assertThat(account.type, equalTo("type"));
}
@Test
public void shouldHaveParcelConstructor() throws Exception {
Parcel p = Parcel.obtain();
p.writeString("name");
p.writeString("type");
p.setDataPosition(0);
Account account = new Account(p);
assertThat(account.name, equalTo("name"));
assertThat(account.type, equalTo("type"));
}
@Test
public void shouldHaveCreator() throws Exception {
Account expected = new Account("name", "type");
Parcel p = Parcel.obtain();
expected.writeToParcel(p, 0);
p.setDataPosition(0);
Account actual = Account.CREATOR.createFromParcel(p);
assertThat(expected, equalTo(actual));
}
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIfNameIsEmpty() throws Exception {
new Account("", "type");
}
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIfTypeIsEmpty() throws Exception {
new Account("name", "");
}
@Test
public void shouldHaveToString() throws Exception {
Account account = new Account("name", "type");
assertThat(account.toString(), equalTo("Account {name=name, type=type}"));
}
@Test
public void shouldProvideEqualAndHashCode() throws Exception {
assertThat(new Account("a", "b"), equalTo(new Account("a", "b")));
assertThat(new Account("a", "b"), not(equalTo(new Account("c", "b"))));
assertThat(new Account("a", "b").hashCode(), equalTo(new Account("a", "b").hashCode()));
assertThat(new Account("a", "b").hashCode(), not(equalTo(new Account("c", "b").hashCode())));
}
}