### Question:
DeleteFromTableAnalyzer implements Analyzer<WriteDataResult>, Action<Iterable<Object[]>>, HasLabelAdvice, PrecedingComponentConsumer { @Validate public void validate() { if (conditionValues.length != conditionColumnNames.length) { throw new IllegalStateException("Condition values and condition column names should have equal length"); } }  @Validate void validate(); @Initialize void init(); @Override String getSuggestedLabel(); @Override void run(final InputRow row, final int distinctCount); @Override WriteDataResult getResult(); @Override void run(final Iterable<Object[]> buffer); @Override void configureForTransformedData(final AnalysisJobBuilder analysisJobBuilder,
            final TransformerDescriptor<?> descriptor); @Override void configureForFilterOutcome(final AnalysisJobBuilder analysisJobBuilder,
            final FilterDescriptor<?, ?> descriptor, final String categoryName);  }### Answer:
@Test public void shouldThrowExceptionForIncorrectErrorHandlingFile() throws Exception { expectedException.expect(IllegalStateException.class); expectedException.expectMessage("Error log file does not have required column header: foo"); final DeleteFromTableAnalyzer deleteFromTable = new DeleteFromTableAnalyzer(); deleteFromTable.datastore = updateableDatastore; deleteFromTable.tableName = "test_table"; deleteFromTable.errorHandlingOption = ErrorHandlingOption.SAVE_TO_FILE; deleteFromTable.errorLogFile = new File("src/test/resources/invalid-error-handling-file.csv"); deleteFromTable.conditionColumnNames = new String[] { "col1", "col2" }; final InputColumn<Object> col1 = new MockInputColumn<>("in1", Object.class); final InputColumn<Object> col2 = new MockInputColumn<>("in2", Object.class); deleteFromTable.conditionValues = new InputColumn[] { col1, col2 }; deleteFromTable.validate(); }