Well, assertSame() asserts that two references point to the same object, and this clearly isn't the case, as one of them points to a
String instance, and the other to a
Pattern instance.
By the way the UsernameValidator is not thread-safe - if it is intended to be.
A simple solution would be to eagerly create a static final instance of Pattern, which is thread-safe, and create and keep a Matcher for that pattern in the scope of the validate() method, as Matcher is not thread-safe.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.