### Question:
AuthenticationToken { @Override public String toString() { return this.base64EncodedToken; } AuthenticationToken(final ApnsSigningKey signingKey, final Instant issuedAt);  AuthenticationToken(final String base64EncodedToken); Instant getIssuedAt(); String getKeyId(); String getTeamId(); boolean verifySignature(final ApnsVerificationKey verificationKey); AsciiString getAuthorizationHeader(); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object obj);  }### Answer:
@Test void testAuthenticationTokenFromString() throws Exception { final String base64EncodedToken = new AuthenticationToken(this.signingKey, Instant.now()).toString(); assertDoesNotThrow(() -> new AuthenticationToken(base64EncodedToken)); }
@Test void testToString() throws Exception { final AuthenticationToken token = new AuthenticationToken(this.signingKey, Instant.now()); assertTrue(Pattern.matches("^[a-zA-Z0-9_\\-]+\\.[a-zA-Z0-9_\\-]+\\.[a-zA-Z0-9_\\-]+$", token.toString())); }