source-reader-test: remove throw clause on RTE add test coverge to hasNext

Throw clause on NoSuchElementException from getNextDataPair is unecessary since NSEE is a RuntimeException.

New test coverage to hasNext is to make sure hasNext *always* returns false and should not fail when there's no item in the source. For example,
Given fooSource having only one record, 'foo',

fooSource.hasNext()         // Should return true
fooSource.getNextDataPair() // Should return 'foo'
fooSource.hasNext()         // Should return false
fooSource.hasNext()         // Should return false
...
fooSource.hasNext()         // Should return false