@Test
public void shouldEnforceUniqueConstraintsDirectly() throws Exception
{
IndexSamplingConfig indexSamplingConfig = new IndexSamplingConfig( Config.defaults() );
withPopulator( indexProvider.getPopulator( descriptor, indexSamplingConfig ), p ->
{
try
{
p.add( Arrays.asList(
IndexEntryUpdate.add( nodeId1, descriptor.schema(), value1, value2 ),
IndexEntryUpdate.add( nodeId2, descriptor.schema(), value1, value2 ) ) );
TestNodePropertyAccessor propertyAccessor =
new TestNodePropertyAccessor( nodeId1, descriptor.schema(), value1, value2 );
propertyAccessor.addNode( nodeId2, descriptor.schema(), value1, value2 );
p.verifyDeferredConstraints( propertyAccessor );
fail( "expected exception" );
}
catch ( IndexEntryConflictException conflict )
{
assertEquals( nodeId1, conflict.getExistingNodeId() );
assertEquals( ValueTuple.of( value1, value2 ), conflict.getPropertyValues() );
assertEquals( nodeId2, conflict.getAddedNodeId() );
}
} );
}