### Question:
Utils { public static void bindContentValueArg(SQLiteStatement statement, int index, Object value) { if (value == null) { statement.bindNull(index); } else if (value instanceof String) { statement.bindString(index, (String) value); } else if (value instanceof Byte) { statement.bindLong(index, Long.valueOf((Byte) value)); } else if (value instanceof Short) { statement.bindLong(index, Long.valueOf((Short) value)); } else if (value instanceof Integer) { statement.bindLong(index, Long.valueOf((Integer) value)); } else if (value instanceof Long) { statement.bindLong(index, (Long) value); } else if (value instanceof Float) { statement.bindDouble(index, (Float) value); } else if (value instanceof Double) { statement.bindDouble(index, (Double) value); } else if (value instanceof Boolean) { statement.bindLong(index, (Boolean) value ? 1 : 0); } else if (value instanceof byte[]) { statement.bindBlob(index, (byte[]) value); } else { throw new IllegalArgumentException("bad value type: " + value.getClass().getName()); } } private  Utils(); static void addToContentValues(String key, Object value, ContentValues contentValues); static void bindContentValueArg(SQLiteStatement statement, int index, Object value); static Object escapeSqlArg(Object arg); static Function<T, Object> toEscapedSqlFunction(); static final UriDecorator DUMMY_URI_DECORATOR; }### Answer:
@Test public void shouldBindStringArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, "test"); verify(mStatement).bindString(eq(1), eq("test")); }
@Test public void shouldBindByteArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, (byte) 42); verify(mStatement).bindLong(eq(1), eq(42L)); }
@Test public void shouldBindShortArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, (short) 42); verify(mStatement).bindLong(eq(1), eq(42L)); }
@Test public void shouldBindIntegerArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, 42); verify(mStatement).bindLong(eq(1), eq(42L)); }
@Test public void shouldBindLongArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, 42L); verify(mStatement).bindLong(eq(1), eq(42L)); }
@Test public void shouldBindFloatArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, 0.5f); verify(mStatement).bindDouble(eq(1), eq(0.5d)); }
@Test public void shouldBindDoubleArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, 0.5d); verify(mStatement).bindDouble(eq(1), eq(0.5d)); }
@Test public void shouldBindTrueArgAsLongEqual1() throws Exception { Utils.bindContentValueArg(mStatement, 1, true); verify(mStatement).bindLong(eq(1), eq(1L)); }
@Test public void shouldBindFalseArgAsLongEqual0() throws Exception { Utils.bindContentValueArg(mStatement, 1, false); verify(mStatement).bindLong(eq(1), eq(0L)); }
@Test public void shouldBindNullArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, null); verify(mStatement).bindNull(eq(1)); }
@Test public void shouldBindBlobArgs() throws Exception { Utils.bindContentValueArg(mStatement, 1, new byte[42]); verify(mStatement).bindBlob(eq(1), eq(new byte[42])); }
@Test(expected = IllegalArgumentException.class) public void shouldFailToBindArgsOfOtherType() throws Exception { Utils.bindContentValueArg(mStatement, 1, new Object()); }