Fix tests; add case-insensitivity test for predicate
Refactor data provider to allow for injecting providers outside the constructor