VerificationTest.java
package com.auth0.jwt.interfaces;
import com.auth0.jwt.JWTVerifier;
import org.junit.Test;
import java.time.Instant;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiPredicate;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasEntry;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertThrows;
/**
* Tests for any default method implementations in the {@link Verification} interface.
*/
public class VerificationTest {
@Test
public void withInstantClaimShouldUseDefaultImpl() {
Instant instant = Instant.ofEpochSecond(1478891521);
Verification verification = new VerificationImplForTest()
.withClaim("name", instant);
assertThat(verification, instanceOf(VerificationImplForTest.class));
assertThat(((VerificationImplForTest)verification).expectedClaims, hasEntry("name", Date.from(instant)));
}
@Test
public void withInstantClaimShouldUseDefaultImplAndHandleNull() {
Verification verification = new VerificationImplForTest()
.withClaim("name", (Instant) null);
assertThat(verification, instanceOf(VerificationImplForTest.class));
assertThat(((VerificationImplForTest)verification).expectedClaims, hasEntry("name", null));
}
@Test
public void withIssuerStringDefaultImplShouldDelegate() {
Verification verification = new VerificationImplForTest()
.withIssuer("string");
assertThat(verification, instanceOf(VerificationImplForTest.class));
assertThat(((VerificationImplForTest)verification).expectedClaims, hasEntry("iss", new String[]{"string"}));
}
static class VerificationImplForTest implements Verification {
private final Map<String, Object> expectedClaims = new HashMap<>();
@Override
public Verification withIssuer(String... issuer) {
expectedClaims.put("iss", issuer);
return this;
}
@Override
public Verification withSubject(String subject) {
return null;
}
@Override
public Verification withAudience(String... audience) {
return null;
}
@Override
public Verification withAnyOfAudience(String... audience) {
return null;
}
@Override
public Verification acceptLeeway(long leeway) throws IllegalArgumentException {
return null;
}
@Override
public Verification acceptExpiresAt(long leeway) throws IllegalArgumentException {
return null;
}
@Override
public Verification acceptNotBefore(long leeway) throws IllegalArgumentException {
return null;
}
@Override
public Verification acceptIssuedAt(long leeway) throws IllegalArgumentException {
return null;
}
@Override
public Verification withJWTId(String jwtId) {
return null;
}
@Override
public Verification withClaimPresence(String name) throws IllegalArgumentException {
return null;
}
@Override
public Verification withNullClaim(String name) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, Boolean value) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, Integer value) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, Long value) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, Double value) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, String value) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, Date value) throws IllegalArgumentException {
this.expectedClaims.put(name, value);
return this;
}
@Override
public Verification withArrayClaim(String name, String... items) throws IllegalArgumentException {
return null;
}
@Override
public Verification withArrayClaim(String name, Integer... items) throws IllegalArgumentException {
return null;
}
@Override
public Verification withArrayClaim(String name, Long... items) throws IllegalArgumentException {
return null;
}
@Override
public Verification withClaim(String name, BiPredicate<Claim, DecodedJWT> predicate) throws IllegalArgumentException {
return null;
}
@Override
public Verification ignoreIssuedAt() {
return null;
}
@Override
public JWTVerifier build() {
return null;
}
}
}