package querqy.rewrite.commonrules.model;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import querqy.ComparableCharSequence;
public class InputTest {
@Before
public void setUp() throws Exception {
}
@Test
public void testGetInputSequencesForSingleTermWithoutFieldName() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, null);
Input input = new Input(Arrays.asList(term1), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(1, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals(0, seq.compareTo("test"));
}
@Test
public void testGetInputSequencesForTermsWithoutFieldName() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, null);
char[] s2 = "test2".toCharArray();
Term term2 = new Term(s2, 0, s2.length, null);
Input input = new Input(Arrays.asList(term1, term2), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(1, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals(0, seq.compareTo("test test2"));
}
@Test
public void testGetInputSequencesForSingleTermWithFieldName() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, Arrays.asList("name1"));
Input input = new Input(Arrays.asList(term1), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(1, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals(0, seq.compareTo("name1:test"));
}
@Test
public void testGetInputSequencesForSingleTermWithFieldNames() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, Arrays.asList("name1", "name2"));
Input input = new Input(Arrays.asList(term1), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(2, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals(0, seq.compareTo("name1:test"));
seq = sequences.get(1);
assertNotNull(seq);
assertEquals(0, seq.compareTo("name2:test"));
}
@Test
public void testGetInputSequencesForTermsWithFieldNames() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, Arrays.asList("name1", "name2"));
char[] s2 = "test2".toCharArray();
Term term2 = new Term(s2, 0, s2.length, Arrays.asList("name3", "name4"));
Input input = new Input(Arrays.asList(term1, term2), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(4, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals("name1:test name3:test2", seq.toString());
seq = sequences.get(1);
assertNotNull(seq);
assertEquals("name1:test name4:test2", seq.toString());
seq = sequences.get(2);
assertNotNull(seq);
assertEquals("name2:test name3:test2", seq.toString());
seq = sequences.get(3);
assertNotNull(seq);
assertEquals("name2:test name4:test2", seq.toString());
}
@Test
public void testGetInputSequencesForTermsWithAndWithoutFieldNames() {
char[] s1 = "test".toCharArray();
Term term1 = new Term(s1, 0, s1.length, Arrays.asList("name1", "name2"));
char[] s2 = "test2".toCharArray();
Term term2 = new Term(s2, 0, s2.length, null);
Input input = new Input(Arrays.asList(term1, term2), false, false);
List<ComparableCharSequence> sequences = input.getInputSequences(false);
assertNotNull(sequences);
assertEquals(2, sequences.size());
ComparableCharSequence seq = sequences.get(0);
assertNotNull(seq);
assertEquals("name1:test test2", seq.toString());
seq = sequences.get(1);
assertNotNull(seq);
assertEquals("name2:test test2", seq.toString());
}
}