@Test
public void testThatGeneratedIsPropagatedToClauses() throws Exception {
BooleanQuery bq = new BooleanQuery(null, SHOULD, false);
DisjunctionMaxQuery dmq = new DisjunctionMaxQuery(bq, Clause.Occur.SHOULD, false);
bq.addClause(dmq);
dmq.addClause(new Term(dmq, "Test", false));
final BooleanQuery clone = (BooleanQuery) bq.clone(null, MUST, true);
assertThat(clone, bq(must(), dmq(should(), term("Test", true))));
assertTrue(clone.isGenerated());
assertTrue(clone.getClauses().get(0).isGenerated());
assertEquals(MUST, clone.getOccur());
}
}