@Override
public void historicProcessVariableLatestValueEquals(final String processInstanceId, final String processVariableName,
final Object expectedValue) {
callback.trace(LogMessage.CONFIGURATION_1, HistoryLevel.FULL.name());
checkHistoryLevelIsFull();
callback.trace(LogMessage.PROCESS_13, processInstanceId);
final HistoricProcessInstance historicProcessInstance = getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstanceId)
.singleResult();
Assert.assertThat(historicProcessInstance, is(notNullValue()));
callback.trace(LogMessage.VARIABLE_1, processVariableName, processInstanceId);
final List<HistoricVariableUpdate> variableUpdates = getDescendingVariableUpdates(processInstanceId, processVariableName);
Assert.assertThat(variableUpdates, CoreMatchers.not(IsEmptyCollection.empty()));
callback.trace(LogMessage.VARIABLE_2, processVariableName, expectedValue);
final HistoricVariableUpdate latestValue = variableUpdates.get(0);
Assert.assertThat(latestValue.getValue(), is(expectedValue));
}