public class IndexedEmbeddedWithPrefixAndDepthTest extends SearchTestCaseJUnit4 {
@Override
@Before
public void setUp() throws Exception {
super.setUp();
Attribute fooAttribute = new Attribute();
fooAttribute.setValue( "foo" );
Attribute barAttribute = new Attribute();
barAttribute.setValue( "bar" );
Element element = new Element();
element.setName( "snafu" );
element.addAttribute( fooAttribute );
element.addAttribute( barAttribute );
ElementSet set = new ElementSet();
set.setNext( element );
persist( fooAttribute, barAttribute, element, set );
}
@Test
public void testAllExpectedFieldsInLuceneDocument() throws Exception {
SearchFactory searchFactory = getSearchFactory();
IndexReader indexReader = searchFactory.getIndexReaderAccessor().open( ElementSet.class );
assertEquals( "There should be a single document in the index", 1, indexReader.numDocs() );
Document document = indexReader.document( 0 );
assertNotNull( document );
assertDocumentContainsField( document, "id" );
assertDocumentContainsField( document, "next_id" );
assertDocumentContainsField( document, "next_name" );
assertDocumentContainsField( document, "next_attribute_id" );
assertDocumentContainsField( document, "next_attribute_value" );
}
private void assertDocumentContainsField(Document document, String fieldName) {
String fieldValue = document.get( fieldName );
assertNotNull( "The field '" + fieldName + "' should exist in the document", fieldValue );
}
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] {
ElementSet.class, Element.class, Attribute.class
};
}
}