final List<Object> clusteringKeysIN = Arrays.<Object>asList(PropertyType.LIST, PropertyType.SET);
final Select select = select().from("table");
//When
final RegularStatement statement = SliceQueryProperties.builder(meta, ClusteredEntity.class, SliceType.SELECT)
.partitionKeysName(asList("id", "bucket")).lastPartitionKeyName("year")
.partitionKeys(partitionKeys).andPartitionKeysIn(partitionKeysIN)
.withClusteringKeysName(asList("date")).lastClusteringKeyName("type")
.withClusteringKeys(clusteringKeys).andClusteringKeysIn(clusteringKeysIN)
.ordering(OrderingMode.DESCENDING)
.limit(12)
.generateWhereClauseForSelect(select);
//Then
assertThat(statement.getQueryString()).isEqualTo("SELECT * FROM table WHERE id=:id AND bucket=:bucket AND year IN :partitionComponentsIn AND date=:date AND type IN :clusteringKeysIn ORDER BY date DESC LIMIT :limitSize;");
}