ShadowBundleTest.java revision 29a8359eaef1ee9f40c967d3c4b5c1117c8c2a43
1cfb3d242306311ce27ec51bf511764377c173a7cKiran Ryali + Christian Williamspackage org.robolectric.shadows;
24d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz
34d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultzimport android.os.Bundle;
47f750b0e733f68282a0158e1c068eb9cd97cf115Jon Boekenoogenimport android.os.Parcelable;
53f465d3c0b9bcae23d11344e53b398b3cad99761Jon Boekenoogenimport junit.framework.AssertionFailedError;
6566a4996cc5ba12e66b10b6b534d5e8bde9601b2Glenn Jahnke & Rick Kawalaimport org.junit.Assert;
74d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultzimport org.junit.Before;
84d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultzimport org.junit.Test;
94d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultzimport org.junit.runner.RunWith;
108efa8a16877d62ef6ba4ddaaaf85055495d73f9fChristian Williamsimport org.robolectric.TestRunners;
114d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz
1231173f95fa91bf1e10912889dd8f4bf401fe3560Aaron VonderHaar & Ryan Richardimport java.util.ArrayList;
1331173f95fa91bf1e10912889dd8f4bf401fe3560Aaron VonderHaar & Ryan Richard
1461886187d23954530016f4147f9c73b0a9eadd92sorackimport static org.junit.Assert.*;
154d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz
164d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz
1756215a065f0b61b67bb7bb21f21b305da9a66c90Christian Williams & Dimitris Couchell@RunWith(TestRunners.WithDefaults.class)
184d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultzpublic class BundleTest {
194d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz
2029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  private Bundle bundle;
2129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
2229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Before public void setUp() throws Exception {
2329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle = new Bundle();
2429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
2529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
2629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
2729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testContainsKey() throws Exception {
2829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertFalse(bundle.containsKey("foo"));
2929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putString("foo", "bar");
3029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertTrue(bundle.containsKey("foo"));
3129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
3229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
3329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
3429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testInt() {
3529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putInt("foo", 5);
3629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(5,bundle.getInt("foo"));
3729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0,bundle.getInt("bar"));
3829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(7, bundle.getInt("bar", 7));
3929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
4029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
4129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
4229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testSize() {
4329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.size());
4429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putInt("foo", 5);
4529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(1, bundle.size());
4629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putInt("bar", 5);
4729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(2, bundle.size());
4829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
4929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
5029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
5129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testLong() {
5229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putLong("foo", 5);
5329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(5, bundle.getLong("foo"));
5429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0,bundle.getLong("bar"));
5529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(7, bundle.getLong("bar", 7));
5629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
5729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
5829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
5929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testDouble() {
6029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putDouble("foo", 5);
6129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Double.valueOf(5), Double.valueOf(bundle.getDouble("foo")));
6229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Double.valueOf(0),Double.valueOf(bundle.getDouble("bar")));
6329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Double.valueOf(7), Double.valueOf(bundle.getDouble("bar", 7)));
6429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
6529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
6629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
6729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testBoolean() {
6829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putBoolean("foo", true);
6929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(true, bundle.getBoolean("foo"));
7029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(false, bundle.getBoolean("bar"));
7129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(true, bundle.getBoolean("bar", true));
7229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
7329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
7429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
7529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testFloat() {
7629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putFloat("foo", 5f);
7729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Float.valueOf(5), Float.valueOf(bundle.getFloat("foo")));
7829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Float.valueOf(0),Float.valueOf(bundle.getFloat("bar")));
7929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(Float.valueOf(7), Float.valueOf(bundle.getFloat("bar", 7)));
8029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
8129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
8229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
8329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testGetOfWrongType() {
8429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putFloat("foo", 5f);
8529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getChar("foo"));
8629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getCharArray("foo"));
8729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getInt("foo"));
8829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getIntArray("foo"));
8929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getIntegerArrayList("foo"));
9029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getShort("foo"));
9129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getShortArray("foo"));
9229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(false, bundle.getBoolean("foo"));
9329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getBooleanArray("foo"));
9429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getLong("foo"));
9529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getLongArray("foo"));
9629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getFloatArray("foo"));
9729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getDouble("foo"), 0.005);
9829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getDoubleArray("foo"));
9929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getString("foo"));
10029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getStringArray("foo"));
10129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getStringArrayList("foo"));
10229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getBundle("foo"));
10329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getParcelable("foo"));
10429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getParcelableArray("foo"));
10529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(null, bundle.getParcelableArrayList("foo"));
10629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
10729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putInt("foo", 1);
10829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.getFloat("foo"), 0.005f);
10929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
11029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
11129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
11229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testRemove() {
11329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putFloat("foo", 5f);
11429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putFloat("foo2", 5f);
11529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
11629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.remove("foo");
11729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
11829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertFalse(bundle.containsKey("foo"));
11929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertTrue(bundle.containsKey("foo2"));
12029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
12129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
12229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
12329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testClear() {
12429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putFloat("foo", 5f);
12529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
12629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.clear();
12729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
12829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(0, bundle.size());
12929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
13029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
13129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
13229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testIsEmpty() {
13329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertTrue(bundle.isEmpty());
13429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putBoolean("foo", true);
13529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertFalse(bundle.isEmpty());
13629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
13729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
13829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
13929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testStringArray() {
14029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putStringArray("foo", new String[] { "a" });
14129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(new String[] { "a" }, bundle.getStringArray("foo"));
14229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getStringArray("bar"));
14329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
14429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
14529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
14629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testStringArrayList() {
14729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    ArrayList<String> list = new ArrayList<String>();
14829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    list.add("a");
14929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
15029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putStringArrayList("foo", new ArrayList<String>(list));
15129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertEquals(list, bundle.getStringArrayList("foo"));
15229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getStringArrayList("bar"));
15329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
15429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
15529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
15629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testIntegerArrayList() {
15729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    ArrayList<Integer> list = new ArrayList<Integer>();
15829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    list.add(100);
15929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
16029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putIntegerArrayList("foo", new ArrayList<Integer>(list));
16129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertEquals(list, bundle.getIntegerArrayList("foo"));
16229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getIntegerArrayList("bar"));
16329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
16429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
16529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
16629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testBundle() {
16729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Bundle innerBundle = new Bundle();
16829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    innerBundle.putInt("int", 7);
16929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putBundle("bundle", innerBundle);
17029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
17129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertEquals(innerBundle, bundle.getBundle("bundle"));
17229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getBundle("bar"));
17329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
17429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
17529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
17629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testBooleanArray() {
17729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    boolean [] arr = new boolean[] { false, true };
17829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putBooleanArray("foo", arr);
17929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
18029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertArrayEquals(arr, bundle.getBooleanArray("foo"));
18129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getBooleanArray("bar"));
18229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
18329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
18429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
18529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testByteArray() {
18629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    byte [] arr = new byte[] { 12, 24 };
18729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putByteArray("foo", arr);
18829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
18929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getByteArray("foo"));
19029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getByteArray("bar"));
19129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
19229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
19329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
19429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testCharArray() {
19529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    char [] arr = new char[] { 'c', 'j' };
19629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putCharArray("foo", arr);
19729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
19829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getCharArray("foo"));
19929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getCharArray("bar"));
20029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
20129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
20229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
20329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testDoubleArray() {
20429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    double [] arr = new double[] { 1.2, 3.4 };
20529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putDoubleArray("foo", arr);
20629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
20729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertArrayEquals(arr, bundle.getDoubleArray("foo"));
20829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getDoubleArray("bar"));
20929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
21029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
21129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
21229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testIntArray() {
21329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    int [] arr = new int[] { 87, 65 };
21429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putIntArray("foo", arr);
21529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
21629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getIntArray("foo"));
21729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getIntArray("bar"));
21829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
21929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
22029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
22129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testLongArray() {
22229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    long [] arr = new long[] { 23, 11 };
22329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putLongArray("foo", arr);
22429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
22529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getLongArray("foo"));
22629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getLongArray("bar"));
22729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
22829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
22929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
23029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testShortArray() {
23129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    short [] arr = new short[] { 89, 37 };
23229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putShortArray("foo", arr);
23329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
23429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getShortArray("foo"));
23529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getShortArray("bar"));
23629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
23729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
23829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
23929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testParcelableArray() {
24029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Bundle innerBundle = new Bundle();
24129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    innerBundle.putInt("value", 1);
24229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Parcelable[] arr = new Parcelable[] { innerBundle };
24329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putParcelableArray("foo", arr);
24429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
24529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertArrayEquals(arr, bundle.getParcelableArray("foo"));
24629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    assertNull(bundle.getParcelableArray("bar"));
24729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
24829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
24929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  @Test
25029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public void testCopyConstructor() {
25129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    bundle.putInt("value", 1);
25229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Bundle copiedBundle = new Bundle(bundle);
25329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
25429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    Assert.assertEquals(copiedBundle, bundle);
25529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
25629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
25729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  private void assertArrayEquals(double[] expected, double[] actual) {
25829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    if (expected != null && actual == null) {
25929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      throw new AssertionFailedError();
26029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    } else if (expected == null && actual != null) {
26129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      throw new AssertionFailedError();
26229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    } else {
26329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      for (int i = 0; i < expected.length; i++) {
26429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams        if (expected[i] != actual[i])
26529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams          throw new AssertionFailedError();
26629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      }
26729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
26829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      if (expected.length != actual.length)
26929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams        throw new AssertionFailedError();
2703f465d3c0b9bcae23d11344e53b398b3cad99761Jon Boekenoogen    }
27129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
27229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
27329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  private void assertArrayEquals(boolean[] expected, boolean[] actual) {
27429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    if (expected != null && actual == null) {
27529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      throw new AssertionFailedError();
27629a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    } else if (expected == null && actual != null) {
27729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      throw new AssertionFailedError();
27829a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams    } else {
27929a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      for (int i = 0; i < expected.length; i++) {
28029a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams        if (expected[i] != actual[i])
28129a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams          throw new AssertionFailedError();
28229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      }
28329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams
28429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams      if (expected.length != actual.length)
28529a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams        throw new AssertionFailedError();
2863f465d3c0b9bcae23d11344e53b398b3cad99761Jon Boekenoogen    }
28729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
2884d354c4c5fea070c0975822f25b3bbcf470ff0dfTyler Schultz}
289