Null is never passed to this method. This should be tested.
Or could we just eliminate the check; what happens if null is passed? Write a couple of tests and find out:
public void testStringValueOfNull() {
assertEquals("", StringFunction.evaluate(null, null));
}
public void testStringValueOfNullWithNonNullNavigator() {
assertEquals("", StringFunction.evaluate(null, new DocumentNavigator()));
}
Which objects are frequently passed to this method, and could those be tested for first?