1 package org.kuali.student.ap.coursesearch.controller;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.kuali.student.ap.coursesearch.QueryTokenizer;
6
7 import java.util.List;
8
9 import static org.junit.Assert.assertEquals;
10 import static org.junit.Assert.assertTrue;
11
12 public class QueryTokenizerImplTest {
13 String sample = " A abc123 edc&i \"quoted text !@#\" 0 00 000 0000 3xx 4XX ";
14 QueryTokenizer qt;
15
16 @Before
17 public void setUp() {
18 qt = new QueryTokenizerImpl();
19 }
20
21 @Test
22 public void testTokenize() throws Exception {
23 List<QueryTokenizer.Token> list = qt.tokenize(sample);
24 assertTrue( list.size() == 10 );
25 assertEquals( list.get( 2 ).rule, QueryTokenizer.Rule.WORD );
26 assertEquals( list.get( 2 ).value, "edc&i" );
27 assertEquals( list.get( 3 ).rule, QueryTokenizer.Rule.QUOTED );
28 }
29
30 @Test
31 public void testIgnoreSpaces() throws Exception {
32 List<QueryTokenizer.Token> list = qt.tokenize(" A B C D ");
33 assertTrue( list.size() == 4 );
34 assertEquals( list.get( 3 ).rule, QueryTokenizer.Rule.WORD );
35 }
36
37 @Test
38 public void testExtractCourseLevels() throws Exception {
39 List<String> levels = qt.extractCourseLevels(sample);
40 assertEquals( levels.get( 0 ), "3xx" );
41 assertEquals( levels.get( 1 ), "4XX" );
42 }
43
44 @Test
45 public void testExtractCourseCodes() throws Exception {
46 List<String> levels = qt.extractCourseCodes(sample);
47 assertEquals( levels.get( 0 ), "123" );
48 assertEquals( levels.get( 1 ), "000" );
49 }
50 }