@Test
public void testExpectedDataSetIsASubsetOfCurrentDataSetUsingNotStringMode() throws Exception {

    // GIVEN
    final String[] orderBy = new String[] {};
    final String[] toExclude = new String[] {};
    final Set<Class<? extends IColumnFilter>> columnFilters = Collections.emptySet();
    final DataSetComparator comparator = new DataSetComparator(orderBy, toExclude, false, columnFilters);

    when(expectedDataSet.getTableNames()).thenReturn(new String[] {
            TABLE_2_NAME
    });
    when(expectedDataSet.getTable(any(String.class))).thenAnswer((final InvocationOnMock invocation) -> {
        final String tableName = (String) invocation.getArguments()[0];
        if (tableName == TABLE_2_NAME) {
            return table2;
        } else {
            throw new NoSuchTableException(tableName);
        }
    });

    when(currentDataSet.getTableNames()).thenReturn(new String[] {
            TABLE_1_NAME, TABLE_2_NAME
    });
    when(currentDataSet.getTable(any(String.class))).thenAnswer((final InvocationOnMock invocation) -> {
        final String tableName = (String) invocation.getArguments()[0];
        if (tableName == TABLE_1_NAME) {
            return table1;
        } else if (tableName == TABLE_2_NAME) {
            return table2;
        } else {
            throw new NoSuchTableException(tableName);
        }
    });

    // WHEN
    comparator.compare(currentDataSet, expectedDataSet, errorCollector);

    // THEN
    assertThat(errorCollector.amountOfErrors(), equalTo(0));

    errorCollector.report();
}