Per the limitations of Mockito, you can't stub or verify final
methods. In short, because the method is marked final, Java skips looking up the method in a method table (or calling the Proxy object that Mockito creates) and compiles in a call to the method implementation directly. With that direct-compiled call there is no opportunity for Mockito to substitute its own answers for stubbing or call-tracking logic for verification.
Try mocking readInternal
instead, or refactor your code to rely on an interface instead of an implementation. Mockito can mock any method on an interface, because there are no finality or visibility problems allowed within interfaces.