package com.github.ebnew.ki4so.core.authentication; import java.util.Date; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.github.ebnew.ki4so.core.exception.InvalidEncryCredentialException; import com.github.ebnew.ki4so.core.model.EncryCredentialInfo; public class EncryCredentialManagerImplTest { EncryCredentialManagerImpl encryCredentialManager; @Before public void setUp() throws Exception { encryCredentialManager = new EncryCredentialManagerImpl(); } @After public void tearDown() throws Exception { encryCredentialManager = null; } /** * 测试解密方法。 */ @Test public void testDecrypt(){ //测试异常输入情况。 Assert.assertNull(encryCredentialManager.decrypt(null)); EncryCredential encryCredential = new EncryCredential(""); Assert.assertNull(encryCredentialManager.decrypt(encryCredential)); //错误的凭据格式。 encryCredential = new EncryCredential("error"); try{ encryCredentialManager.decrypt(encryCredential); Assert.fail("should throw excption"); }catch (InvalidEncryCredentialException e) { // TODO: handle exception } //测试正常情况。 EncryCredentialInfo encryCredentialInfo = buildTextEncryCredentialInfo(); String result = encryCredentialManager.encrypt(encryCredentialInfo); encryCredentialManager.decrypt(new EncryCredential(result)); } /** * 测试加密方法。 */ @Test public void testEncrypt(){ //测试对null加密的情况,返回''。 Assert.assertEquals(0, encryCredentialManager.encrypt(null).length()); //测试正确情况。 String result = encryCredentialManager.encrypt(buildTextEncryCredentialInfo()); Assert.assertNotNull(result); } private EncryCredentialInfo buildTextEncryCredentialInfo(){ EncryCredentialInfo encryCredentialInfo = new EncryCredentialInfo(); encryCredentialInfo.setAppId("1"); Date createTime = new Date(); encryCredentialInfo.setCreateTime(createTime); Date expiredTime = new Date(); encryCredentialInfo.setExpiredTime(expiredTime); encryCredentialInfo.setKeyId("333"); encryCredentialInfo.setUserId("wubingyang"); return encryCredentialInfo; } }