|
34 | 34 | import static org.hamcrest.Matchers.instanceOf; |
35 | 35 |
|
36 | 36 | public class KeepTypesFilterFactoryTests extends ESTokenStreamTestCase { |
37 | | - public void testKeepTypes() throws IOException { |
38 | | - Settings settings = Settings.builder() |
39 | | - .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) |
40 | | - .put("index.analysis.filter.keep_numbers.type", "keep_types") |
41 | | - .putList("index.analysis.filter.keep_numbers.types", new String[] {"<NUM>", "<SOMETHINGELSE>"}) |
42 | | - .build(); |
| 37 | + |
| 38 | + private static final String BASE_SETTING = "index.analysis.filter.keep_numbers"; |
| 39 | + |
| 40 | + public void testKeepTypesInclude() throws IOException { |
| 41 | + Settings.Builder settingsBuilder = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) |
| 42 | + .put(BASE_SETTING + ".type", "keep_types") |
| 43 | + .putList(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_KEY, new String[] { "<NUM>", "<SOMETHINGELSE>" }); |
| 44 | + // either use default mode or set "include" mode explicitly |
| 45 | + if (random().nextBoolean()) { |
| 46 | + settingsBuilder.put(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_MODE_KEY, |
| 47 | + KeepTypesFilterFactory.KeepTypesMode.INCLUDE); |
| 48 | + } |
| 49 | + Settings settings = settingsBuilder.build(); |
| 50 | + ESTestCase.TestAnalysis analysis = AnalysisTestsHelper.createTestAnalysisFromSettings(settings, new CommonAnalysisPlugin()); |
| 51 | + TokenFilterFactory tokenFilter = analysis.tokenFilter.get("keep_numbers"); |
| 52 | + assertThat(tokenFilter, instanceOf(KeepTypesFilterFactory.class)); |
| 53 | + String source = "Hello 123 world"; |
| 54 | + String[] expected = new String[] { "123" }; |
| 55 | + Tokenizer tokenizer = new StandardTokenizer(); |
| 56 | + tokenizer.setReader(new StringReader(source)); |
| 57 | + assertTokenStreamContents(tokenFilter.create(tokenizer), expected, new int[] { 2 }); |
| 58 | + } |
| 59 | + |
| 60 | + public void testKeepTypesExclude() throws IOException { |
| 61 | + Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) |
| 62 | + .put(BASE_SETTING + ".type", "keep_types") |
| 63 | + .putList(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_KEY, new String[] { "<NUM>", "<SOMETHINGELSE>" }) |
| 64 | + .put(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_MODE_KEY, KeepTypesFilterFactory.KeepTypesMode.EXCLUDE).build(); |
43 | 65 | ESTestCase.TestAnalysis analysis = AnalysisTestsHelper.createTestAnalysisFromSettings(settings, new CommonAnalysisPlugin()); |
44 | 66 | TokenFilterFactory tokenFilter = analysis.tokenFilter.get("keep_numbers"); |
45 | 67 | assertThat(tokenFilter, instanceOf(KeepTypesFilterFactory.class)); |
46 | 68 | String source = "Hello 123 world"; |
47 | | - String[] expected = new String[]{"123"}; |
| 69 | + String[] expected = new String[] { "Hello", "world" }; |
48 | 70 | Tokenizer tokenizer = new StandardTokenizer(); |
49 | 71 | tokenizer.setReader(new StringReader(source)); |
50 | | - assertTokenStreamContents(tokenFilter.create(tokenizer), expected, new int[]{2}); |
| 72 | + assertTokenStreamContents(tokenFilter.create(tokenizer), expected, new int[] { 1, 2 }); |
| 73 | + } |
| 74 | + |
| 75 | + public void testKeepTypesException() throws IOException { |
| 76 | + Settings settings = Settings.builder().put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) |
| 77 | + .put(BASE_SETTING + ".type", "keep_types") |
| 78 | + .putList(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_KEY, new String[] { "<NUM>", "<SOMETHINGELSE>" }) |
| 79 | + .put(BASE_SETTING + "." + KeepTypesFilterFactory.KEEP_TYPES_MODE_KEY, "bad_parameter").build(); |
| 80 | + IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, |
| 81 | + () -> AnalysisTestsHelper.createTestAnalysisFromSettings(settings, new CommonAnalysisPlugin())); |
| 82 | + assertEquals("`keep_types` tokenfilter mode can only be [include] or [exclude] but was [bad_parameter].", ex.getMessage()); |
51 | 83 | } |
52 | 84 | } |
0 commit comments