1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.index.context;
20
21 import java.io.IOException;
22 import java.io.StringReader;
23 import java.util.ArrayList;
24 import java.util.Arrays;
25
26 import org.apache.lucene.analysis.TokenStream;
27 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
28 import org.apache.maven.index.IndexerField;
29 import org.apache.maven.index.creator.MinimalArtifactInfoIndexCreator;
30 import org.junit.Test;
31
32 import static org.junit.Assert.assertEquals;
33
34 public class NexusAnalyzerTest {
35 protected NexusAnalyzer nexusAnalyzer = new NexusAnalyzer();
36
37 @Test
38 public void testGroupIdTokenization() throws IOException {
39 runAndCompare(MinimalArtifactInfoIndexCreator.FLD_GROUP_ID, "org.slf4j", new String[] {"org", "slf4j"});
40
41 runAndCompare(MinimalArtifactInfoIndexCreator.FLD_GROUP_ID_KW, "org.slf4j", new String[] {"org.slf4j"});
42 }
43
44 protected void runAndCompare(IndexerField indexerField, String text, String[] expected) throws IOException {
45 TokenStream ts = nexusAnalyzer.tokenStream(indexerField.getKey(), new StringReader(text));
46 ts.reset();
47
48 ArrayList<String> tokenList = new ArrayList<>();
49
50 if (!indexerField.isKeyword()) {
51 while (ts.incrementToken()) {
52 CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
53 tokenList.add(term.toString());
54 }
55 } else {
56 tokenList.add(text);
57 }
58
59 assertEquals("The result does not meet the expectations.", Arrays.asList(expected), tokenList);
60 }
61 }