### Question:
Query { public T withAlias(String aliasSuffix) { if (this.aliasSuffix != null) { throw new IllegalStateException("Can only define a single alias for a field"); } if (aliasSuffix == null || aliasSuffix.isEmpty()) { throw new IllegalArgumentException("Can't specify an empty alias"); } if (aliasSuffix.contains(Query.ALIAS_SUFFIX_SEPARATOR)) { throw new IllegalArgumentException("Alias must not contain __"); } if (aliasSuffix.contains(Query.BAD_ALIAS_SEPARATOR)) { throw new IllegalArgumentException("Alias must not contain -"); } this.aliasSuffix = aliasSuffix; return (T) this; } protected  Query(StringBuilder queryBuilder); static void appendQuotedString(StringBuilder query, String string); T withAlias(String aliasSuffix); static final String ALIAS_SUFFIX_SEPARATOR; }### Answer:
@Test(expected = IllegalArgumentException.class) public void testInvalidAliasWithUnderscore() { new Query<Query>(null) {}.withAlias("invalid__alias"); }
@Test(expected = IllegalArgumentException.class) public void testInvalidAliasWithDashes() { new Query<Query>(null) {}.withAlias("invalid-alias"); }
@Test(expected = IllegalArgumentException.class) public void testBlankAlias() { new Query<Query>(null) {}.withAlias(""); }