Testing Multiple Implementations of same Interface