Improve tests for AbstractDataSource subclasses

These are fairly basic objects with almost no tests, and tests should be straightforward.
It doesn't really cause code calcification, since any changes which modified the implementation to not use `_data` would break the test, and so the test would need updating as part of that change.  The real concern is that other code might try to use the `_data` trait, but is is signalled as private, so I'm OK with that.

If I were writing the tests from scratch, I probably wouldn't bother with this test at all, and instead break up the things its doing into individual tests related to the methods.