def METHOD_NAME(self, es_version: str, indices: Dict, stats: Dict) -> None:
    extractor = self._get_extractor()
    extractor._get_es_version = lambda: es_version
    extractor.es.indices.get = MagicMock(return_value=indices)
    extractor.es.search = MagicMock(return_value=stats)
    common = {
        'db': 'elasticsearch',
        'schema': 'schema_name',
        'table_name': 'proper_index',
        'cluster': 'cluster_name',
        'start_epoch': '0',
        'end_epoch': '0'
    }
    compare_params = {'table', 'schema', 'db', 'col_name', 'start_epoch',
                      'end_epoch', 'cluster', 'stat_type', 'stat_val'}
    expected = [
        {x: spec[x] for x in compare_params if x in spec} for spec in
        [
            TableColumnStats(
                **{**dict(stat_name='avg', stat_val='5', col_name='long_property'), **common}).__dict__,
            TableColumnStats(
                **{**dict(stat_name='sum', stat_val='10', col_name='long_property'), **common}).__dict__,
            TableColumnStats(
                **{**dict(stat_name='count', stat_val='2', col_name='long_property'), **common}).__dict__,
        ]
    ]
    result = []
    while True:
        stat = extractor.extract()
        if stat:
            result.append(stat)
        else:
            break
    result_spec = [{x: spec.__dict__[x] for x in compare_params if x in spec.__dict__} for spec in result]
    for r in result:
        self.assertIsInstance(r, TableColumnStats)
    self.assertListEqual(expected, result_spec)