package com.github.ebnew.ki4so.core.authentication.resolvers; import junit.framework.Assert; import org.junit.Test; import org.mockito.Mockito; import com.github.ebnew.ki4so.core.authentication.Credential; import com.github.ebnew.ki4so.core.authentication.DefaultUserPrincipal; import com.github.ebnew.ki4so.core.authentication.UsernamePasswordCredential; public class UsernamePasswordCredentialToPrincipalResolverTest { private UsernamePasswordCredentialToPrincipalResolver resolver = new UsernamePasswordCredentialToPrincipalResolver(); @Test public void testSupports(){ //测试凭据为空的情况。 Assert.assertFalse(resolver.supports(null)); //测试不支持的凭据类型的情况。 Credential credential = Mockito.mock(Credential.class); Assert.assertFalse(resolver.supports(credential)); //测试支持的凭据类型UsernamePasswordCredential的情况。 credential = new UsernamePasswordCredential(); Assert.assertTrue(resolver.supports(credential)); //测试支持的凭据类型UsernamePasswordCredential的子类情况。 credential = new SubUsernamePasswordCredential(); Assert.assertTrue(resolver.supports(credential)); } @Test public void testResolvePrincipal(){ //测试传入null的情况。 Assert.assertNull(resolver.resolvePrincipal(null)); //测试传入不支持的凭据类型的情况。 Credential credential = Mockito.mock(Credential.class); Assert.assertNull(resolver.resolvePrincipal(credential)); //测试传入正确的凭据对象的情况。 String username = "admin"; UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredential(); usernamePasswordCredential.setUsername(username); DefaultUserPrincipal principal = (DefaultUserPrincipal)resolver.resolvePrincipal(usernamePasswordCredential); Assert.assertNotNull(principal); Assert.assertEquals(username, principal.getId()); } } class SubUsernamePasswordCredential extends UsernamePasswordCredential{ }