public void testAcquireToken_KeyCred() throws Exception {

    ctx =
        PowerMock.createPartialMock(
            AuthenticationContext.class,
            new String[] {"acquireTokenCommon"},
            TestConfiguration.AAD_TENANT_ENDPOINT,
            true,
            service);
    PowerMock.expectPrivate(
            ctx,
            "acquireTokenCommon",
            EasyMock.isA(AdalAuthorizatonGrant.class),
            EasyMock.isA(ClientAuthentication.class),
            EasyMock.isA(ClientDataHttpHeaders.class))
        .andReturn(
            new AuthenticationResult(
                "bearer", "accessToken", null, new Date().getTime(), null, null, false));

    final KeyStore keystore = KeyStore.getInstance("PKCS12", "SunJSSE");
    keystore.load(
        new FileInputStream(
            this.getClass().getResource(TestConfiguration.AAD_CERTIFICATE_PATH).getFile()),
        TestConfiguration.AAD_CERTIFICATE_PASSWORD.toCharArray());
    final String alias = keystore.aliases().nextElement();
    final PrivateKey key =
        (PrivateKey)
            keystore.getKey(alias, TestConfiguration.AAD_CERTIFICATE_PASSWORD.toCharArray());
    final X509Certificate cert = (X509Certificate) keystore.getCertificate(alias);

    PowerMock.replay(ctx);
    final Future<AuthenticationResult> result =
        ctx.acquireToken(
            TestConfiguration.AAD_RESOURCE_ID,
            AsymmetricKeyCredential.create(TestConfiguration.AAD_CLIENT_ID, key, cert),
            null);
    final AuthenticationResult ar = result.get();
    assertNotNull(ar);
    assertFalse(StringHelper.isBlank(result.get().getAccessToken()));
    assertTrue(StringHelper.isBlank(result.get().getRefreshToken()));
    PowerMock.verifyAll();
    PowerMock.resetAll(ctx);
  }