1fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenpackage com.xtremelabs.robolectric.shadows;
2fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
3fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport static org.hamcrest.CoreMatchers.equalTo;
4fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport static org.hamcrest.CoreMatchers.not;
5fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport static org.junit.Assert.assertArrayEquals;
6fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport static org.junit.Assert.assertEquals;
7fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport static org.junit.Assert.assertThat;
8fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
9fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
10fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
11fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport org.junit.Test;
12fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport org.junit.runner.RunWith;
13fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
14fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport android.content.pm.Signature;
15fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenimport android.os.Parcel;
16fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
17fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen@RunWith(WithTestDefaultsRunner.class)
18fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogenpublic class SignatureTest {
19fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
20fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    @Test
21fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    public void shouldHaveByteArrayConstructorAndToByteArray() {
22fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        byte[] bytes = { (byte) 0xAC, (byte) 0xDE };
23fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        Signature signature = new Signature(bytes);
24fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
25fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertArrayEquals(bytes, signature.toByteArray());
26fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    }
27fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
28fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    @Test
29fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    public void shouldHaveCreator() throws Exception {
30fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        byte[] bytes = { (byte) 0xAC, (byte) 0xDE };
31fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        Signature expected = new Signature(bytes);
32fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        Parcel p = Parcel.obtain();
33fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        expected.writeToParcel(p, 0);
34fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
35fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        p.setDataPosition(0);
36fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
37fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        Signature actual = Signature.CREATOR.createFromParcel(p);
38fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertEquals(expected, actual);
39fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    }
40fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen
41fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    @Test
42fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    public void shouldProvideEqualsAndHashCode() throws Exception {
43fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertThat(new Signature(new byte[] { (byte) 0xAC }),
44fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen                equalTo(new Signature(new byte[] { (byte) 0xAC })));
45fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertThat(new Signature(new byte[] { (byte) 0xAC }),
46fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen                not(equalTo(new Signature(new byte[] { (byte) 0xDE }))));
47fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertThat(new Signature(new byte[] { (byte) 0xAC }).hashCode(),
48fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen                equalTo(new Signature(new byte[] { (byte) 0xAC }).hashCode()));
49fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen        assertThat(new Signature(new byte[] { (byte) 0xAC }).hashCode(),
50fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen                not(equalTo(new Signature(new byte[] { (byte) 0xDE }).hashCode())));
51fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen    }
52fe20862bc4c9814d601886845811552fcf195dffJon Boekenoogen}
53