/**
* 测试解密失败抛出异常的情况。
*/
EncryCredential encryCredential = new EncryCredential("sssddaf");
EncryCredentialManager encryCredentialManager = Mockito.mock(EncryCredentialManager.class);
this.handler.setEncryCredentialManager(encryCredentialManager);
Mockito.when(encryCredentialManager.decrypt(encryCredential)).thenThrow(InvalidEncryCredentialException.INSTANCE);
Assert.assertFalse(handler.authenticate(encryCredential));
/**
* 测试解密返回null的情况。
*/
Mockito.reset(encryCredentialManager);
Mockito.when(encryCredentialManager.decrypt(encryCredential)).thenReturn(null);
Assert.assertFalse(handler.authenticate(encryCredential));
/**
* 测试解密成功,但是凭据不合法的情况。
*/
Mockito.reset(encryCredentialManager);
EncryCredentialInfo encryCredentialInfo = new EncryCredentialInfo();
Mockito.when(encryCredentialManager.decrypt(encryCredential)).thenReturn(encryCredentialInfo);
Assert.assertFalse(handler.authenticate(encryCredential));
/**
* 测试解密成功,但是凭据合法的情况。
*/
Mockito.reset(encryCredentialManager);
encryCredentialInfo = new EncryCredentialInfo();
Mockito.when(encryCredentialManager.decrypt(encryCredential)).thenReturn(encryCredentialInfo);
Mockito.when(encryCredentialManager.checkEncryCredentialInfo(encryCredentialInfo)).thenReturn(true);
Assert.assertTrue(handler.authenticate(encryCredential));
}