### Question:
In extends BaseComparison { @Override public void appendValue(DatabaseType databaseType, StringBuilder sb, List<ArgumentHolder> columnArgList) throws SQLException { sb.append('('); boolean first = true; for (Object value : objects) { if (value == null) { throw new IllegalArgumentException("one of the IN values for '" + columnName + "' is null"); } if (first) { first = false; } else { sb.append(','); } super.appendArgOrValue(databaseType, fieldType, sb, columnArgList, value); } sb.append(") "); } In(String columnName, FieldType fieldType, Iterable<?> objects, boolean in);  In(String columnName, FieldType fieldType, Object[] objects, boolean in); @Override void appendOperation(StringBuilder sb); @Override void appendValue(DatabaseType databaseType, StringBuilder sb, List<ArgumentHolder> columnArgList);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testAppendValueNull() throws Exception { List<Object> objList = new ArrayList<Object>(); objList.add(null); In in = new In("foo", numberFieldType, objList, true); in.appendValue(null, new StringBuilder(), null); }
@Test public void testAppendValue() throws Exception { List<Object> objList = new ArrayList<Object>(); Random random = new Random(); int numArgs = 100; for (int i = 0; i < numArgs; i++) { objList.add((Integer) random.nextInt()); } In in = new In("foo", numberFieldType, objList, true); StringBuilder sb = new StringBuilder(); in.appendValue(null, sb, new ArrayList<ArgumentHolder>()); String[] args = sb.toString().split(","); assertEquals("(" + objList.get(0) + " ", args[0]); for (int i = 1; i < numArgs - 1; i++) { assertEquals(objList.get(i) + " ", args[i]); } assertEquals(objList.get(numArgs - 1) + " ) ", args[numArgs - 1]); }