public async Task ValidToken() { var payload = new Dictionary <string, object>() { { "foo", "bar" }, }; var idToken = await CreateTestTokenAsync(payloadOverrides : payload); var decoded = await TokenVerifier.VerifyTokenAsync(idToken); Assert.Equal("testuser", decoded.Uid); Assert.Equal("test-project", decoded.Audience); Assert.Equal("testuser", decoded.Subject); // The default test token created by CreateTestTokenAsync has an issue time 10 minutes // ago, and an expiry time 50 minutes in the future. Assert.Equal(Clock.UnixTimestamp() - 60 * 10, decoded.IssuedAtTimeSeconds); Assert.Equal(Clock.UnixTimestamp() + 60 * 50, decoded.ExpirationTimeSeconds); Assert.Single(decoded.Claims); object value; Assert.True(decoded.Claims.TryGetValue("foo", out value)); Assert.Equal("bar", value); }