What happen if testMode is true ? It will try to parse a response ?

You should have the same logic for each provider (sometimes you return array(), which is the sanest choice I think)