@Test
public void deleteVerification() throws Throwable {
Id ownerId = new SimpleId( "owner" );
IndexEdge indexSCope = new IndexEdgeImpl( ownerId, "user", SearchEdge.NodeType.SOURCE, 10 );
final String middleName = "middleName" + UUIDUtils.newTimeUUID();
Map entityMap = new HashMap() {{
put( "username", "edanuff" );
put( "email", "ed@anuff.com" );
put( "middlename", middleName );
}};
Entity user = EntityIndexMapUtils.fromMap( entityMap );
EntityUtils.setId( user, new SimpleId( "edanuff" ) );
EntityUtils.setVersion( user, UUIDGenerator.newTimeUUID() );
EntityIndexBatch batch = entityIndex.createBatch();
batch.index( indexSCope, user );
indexProducer.put(batch.build()).subscribe();;
entityIndex.refreshAsync().toBlocking().first();
final String query = "where username = 'edanuff'";
CandidateResults r = entityIndex.search( indexSCope, SearchTypes.fromTypes( "edanuff" ), query, 10, 0, false);
assertEquals( user.getId(), r.get( 0 ).getId());
batch.deindex( indexSCope, user.getId(), user.getVersion() );
indexProducer.put(batch.build()).subscribe();;
entityIndex.refreshAsync().toBlocking().first();
r = entityIndex.search( indexSCope, SearchTypes.fromTypes( "edanuff" ), query, 10, 0, false );
assertFalse( r.iterator().hasNext() );
}