  @Test public void put() {

    ArrayList<Integer> integerArrayList = new ArrayList<Integer>();
    integerArrayList.add(3);
    Bundle b = new Bundle();
    ArrayList<String> stringArrayList = new ArrayList<String>();
    stringArrayList.add("a string");
    ArrayList<CharSequence> charSequenceArrayList = new ArrayList<CharSequence>();
    charSequenceArrayList.add("a sequence");

    Bundler.of(bundle)
        .put("boolean", false)
        .put("boolean[]", new boolean[] { false, true })
        .put("int", 4)
        .put("int[]", 10)
        .put("ArrayList<Integer>", integerArrayList)
        .put("Bundle", b)
        .put("byte", (byte) 0)
        .put("byte[]", new byte[] { 1, 2 })
        .put("string", "bundler")
        .put("string[]", new String[] { "foo", "bar" })
        .put("long", 20L)
        .put("long[]", new long[] { 4L, 5L })
        .put("float", 3.14F)
        .put("float[]", new float[] { 2.72F, 4F })
        .put("char", new float[] { 2.72F, 4F })
        .put("char[]", new float[] { 2.72F, 4F })
        .put("CharSequence", new float[] { 2.72F, 4F })
        .put("ArrayList<CharSequence>", charSequenceArrayList)
        .put("double", Math.PI)
        .put("double[]", new double[] { Math.PI, Math.E })
        .put("short", (short) 4)
        .put("short[]", new short[] { 1, 3 });

    assertThat(bundle) //
        .contains("boolean", false)
        .contains("boolean[]", new boolean[] { false, true })
        .contains("int", 4)
        .contains("int[]", 10)
        .contains("ArrayList<Integer>", integerArrayList)
        .contains("Bundle", b)
        .contains("byte", (byte) 0)
        .contains("byte[]", new byte[] { 1, 2 })
        .contains("string", "bundler")
        .contains("string[]", new String[] { "foo", "bar" })
        .contains("long", 20L)
        .contains("long[]", new long[] { 4L, 5L })
        .contains("float", 3.14F)
        .contains("float[]", new float[] { 2.72F, 4F })
        .contains("char", new float[] { 2.72F, 4F })
        .contains("char[]", new float[] { 2.72F, 4F })
        .contains("CharSequence", new float[] { 2.72F, 4F })
        .contains("ArrayList<CharSequence>", charSequenceArrayList)
        .contains("double", Math.PI)
        .contains("double[]", new double[] { Math.PI, Math.E })
        .contains("short", (short) 4)
        .contains("short[]", new short[] { 1, 3 });
  }