You're missing some branch coverage here... maybe the decision which implementation should be used could be controlled / injected from the outside.