### Question:
SelectItems implements Iterable<SelectItem> { @SuppressWarnings({ "rawtypes", "unchecked" }) public Iterator<SelectItem> iterator() { if (this.value == null) { return Collections.<SelectItem> emptySet().iterator(); } if (this.value instanceof SelectItem) { return Collections.singleton((SelectItem) this.value).iterator(); } if (this.value instanceof Map) { return new MapEntryIterator(((Map) this.value).entrySet()); } if (this.value.getClass().isArray()) { return new ValuesIterator(Arrays.asList((Object[]) this.value)); } if (this.value instanceof Iterable) { return new ValuesIterator(((Iterable) this.value)); } throw new IllegalArgumentException("Unsupport class type " + this.value.getClass().getName() + " for SelectItem value"); } SelectItems(Object value); @SuppressWarnings({ "rawtypes", "unchecked" }) Iterator<SelectItem> iterator();  }### Answer:
@Test public void shouldNotSupportOtherObjectTypes() throws Exception { this.thrown.expect(IllegalArgumentException.class); this.thrown.expectMessage("Unsupport class type java.lang.StringBuffer for SelectItem value"); new TestableSelectItems(new StringBuffer()).iterator(); }