]> source.dussan.org Git - sonarqube.git/blob
f971c3df02093fa4d57ff9545a147666ad716ca9
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2016 SonarSource SA
4  * mailto:contact AT sonarsource DOT com
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20 package org.sonar.server.component.index;
21
22 import org.junit.Test;
23
24 public class ComponentIndexMultipleWordsTest extends ComponentIndexTest {
25
26   @Test
27   public void should_find_perfect_match() {
28     assertResultOrder("struts java",
29       "Struts.java");
30   }
31
32   @Test
33   public void should_find_fuzzy_match() {
34     features.set(ComponentIndexSearchFeature.FUZZY);
35     assertResultOrder("StrutX ProjecX",
36       "Struts Project");
37   }
38
39   @Test
40   public void should_find_partial_match() {
41     features.set(ComponentIndexSearchFeature.PARTIAL);
42     assertResultOrder("struts java",
43       "Xstrutsx.Xjavax");
44   }
45
46   @Test
47   public void should_find_partial_match_prefix_word1() {
48     assertResultOrder("struts java",
49       "MyStruts.java");
50   }
51
52   @Test
53   public void should_find_partial_match_suffix_word1() {
54     assertResultOrder("struts java",
55       "StrutsObject.java");
56   }
57
58   @Test
59   public void should_find_partial_match_prefix_word2() {
60     assertResultOrder("struts java",
61       "MyStruts.xjava");
62   }
63
64   @Test
65   public void should_find_partial_match_suffix_word2() {
66     assertResultOrder("struts java",
67       "MyStruts.javax");
68   }
69
70   @Test
71   public void should_find_partial_match_prefix_and_suffix_everywhere() {
72     assertResultOrder("struts java",
73       "MyStrutsObject.xjavax");
74   }
75
76   @Test
77   public void should_find_subset_of_document_terms() {
78     assertResultOrder("struts java",
79       "Some.Struts.Class.java.old");
80   }
81
82   @Test
83   public void should_require_all_words_to_match() {
84     assertNoFileMatches("struts java",
85       "Struts");
86   }
87
88   @Test
89   public void should_ignore_empty_words() {
90     assertFileMatches("     :     .  struts   \n .    :\n\n",
91       "Struts");
92   }
93
94   @Test
95   public void should_require_all_words_to_match_for_fuzziness() {
96     features.set(ComponentIndexSearchFeature.FUZZY);
97     assertNoFileMatches("struts java",
98       "Struts");
99   }
100
101   @Test
102   public void should_require_all_words_to_match_for_partial() {
103     features.set(ComponentIndexSearchFeature.PARTIAL);
104     assertNoFileMatches("struts java",
105       "Struts");
106   }
107
108 }