@Override public ComparableCharSequence subSequence(final int start, final int end) { return new LowerCaseCharSequence(delegate.subSequence(start, end)); }
public ComparableCharSequence toCharSequenceWithField(final boolean lowerCaseValue) { ComparableCharSequence valueToUse = lowerCaseValue ? new LowerCaseCharSequence(this) : value; return (field == null) ? valueToUse : new CompoundCharSequence(":", field, valueToUse); }
public List<ComparableCharSequence> getCharSequences(final boolean lowerCaseValue) { final SimpleComparableCharSequence seq = new SimpleComparableCharSequence(value, start, length); final ComparableCharSequence valueSequence = lowerCaseValue ? new LowerCaseCharSequence(seq) : seq; final List<ComparableCharSequence> seqs = new LinkedList<>(); if (fieldNames == null) { seqs.add(valueSequence); } else { for (final String name : fieldNames) { seqs.add(new CompoundCharSequence(FIELD_CHAR, name, valueSequence)); } } return seqs; }
@Test public void testThatCompareToIsCaseInsensitive() throws Exception { assertEquals(0, new LowerCaseCharSequence("Hello WORLD!").compareTo("hello world!")); LowerCaseCharSequence upperA = new LowerCaseCharSequence("ABC"); LowerCaseCharSequence lowerA = new LowerCaseCharSequence("abc"); LowerCaseCharSequence upperB = new LowerCaseCharSequence("BCD"); LowerCaseCharSequence lowerB = new LowerCaseCharSequence("bcd"); assertEquals(upperA.compareTo(upperB), lowerA.compareTo(lowerB)); assertEquals(upperB.compareTo(upperA), lowerB.compareTo(lowerA)); }
@Test public void testClassHandling() throws Exception { assertTrue(CharSequenceUtil.equals("abc", new LowerCaseCharSequence("ABC"))); assertTrue(CharSequenceUtil.equals(new LowerCaseCharSequence("ABC"), "abc")); assertFalse(CharSequenceUtil.equals("abc", new Object() {@Override public String toString() { return "abc"; }})); }
@Test public void testThatToStringReturnsTheLowerCaseString() throws Exception { assertEquals("hello world!", new LowerCaseCharSequence("Hello WORLD!").toString()); }