mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-30 18:26:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
|   | package oidc;
 | ||
|  | 
 | ||
|  | import auth.sso.oidc.OidcConfigs;
 | ||
|  | 
 | ||
|  | import java.util.Arrays;
 | ||
|  | import java.util.Collection;
 | ||
|  | import java.util.Collections;
 | ||
|  | import java.util.List;
 | ||
|  | 
 | ||
|  | import static auth.sso.oidc.OidcCallbackLogic.getGroupNames;
 | ||
|  | import static org.junit.jupiter.api.Assertions.assertEquals;
 | ||
|  | import static org.mockito.Mockito.mock;
 | ||
|  | import static org.mockito.Mockito.when;
 | ||
|  | 
 | ||
|  | import org.junit.jupiter.api.Test;
 | ||
|  | import org.mockito.Mockito;
 | ||
|  | import org.pac4j.core.profile.CommonProfile;
 | ||
|  | 
 | ||
|  | public class OidcCallbackLogicTest {
 | ||
|  | 
 | ||
|  |     @Test
 | ||
|  |     public void testGetGroupsClaimNamesJsonArray() {
 | ||
|  |         CommonProfile profile = createMockProfileWithAttribute("[\"group1\", \"group2\"]", "groupsClaimName");
 | ||
|  |         Collection<String> result = getGroupNames(profile, "[\"group1\", \"group2\"]", "groupsClaimName");
 | ||
|  |         assertEquals(Arrays.asList("group1", "group2"), result);
 | ||
|  |     }
 | ||
|  |     @Test
 | ||
|  |     public void testGetGroupNamesWithSingleGroup() {
 | ||
|  |         CommonProfile profile = createMockProfileWithAttribute("group1", "groupsClaimName");
 | ||
|  |         Collection<String> result = getGroupNames(profile, "group1", "groupsClaimName");
 | ||
|  |         assertEquals(Arrays.asList("group1"), result);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     @Test
 | ||
|  |     public void testGetGroupNamesWithCommaSeparated() {
 | ||
|  |         CommonProfile profile = createMockProfileWithAttribute("group1,group2", "groupsClaimName");
 | ||
|  |         Collection<String> result = getGroupNames(profile, "group1,group2", "groupsClaimName");
 | ||
|  |         assertEquals(Arrays.asList("group1", "group2"), result);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     @Test
 | ||
|  |     public void testGetGroupNamesWithCollection() {
 | ||
|  |         CommonProfile profile = createMockProfileWithAttribute(Arrays.asList("group1", "group2"), "groupsClaimName");
 | ||
|  |         Collection<String> result = getGroupNames(profile, Arrays.asList("group1", "group2"), "groupsClaimName");
 | ||
|  |         assertEquals(Arrays.asList("group1", "group2"), result);
 | ||
|  |     }
 | ||
|  |     // Helper method to create a mock CommonProfile with given attribute
 | ||
|  |     private CommonProfile createMockProfileWithAttribute(Object attribute, String attributeName) {
 | ||
|  |         CommonProfile profile = mock(CommonProfile.class);
 | ||
|  | 
 | ||
|  |         // Mock for getAttribute(String)
 | ||
|  |         when(profile.getAttribute(attributeName)).thenReturn(attribute);
 | ||
|  | 
 | ||
|  |         // Mock for getAttribute(String, Class<T>)
 | ||
|  |         if (attribute instanceof Collection) {
 | ||
|  |             when(profile.getAttribute(attributeName, Collection.class)).thenReturn((Collection) attribute);
 | ||
|  |         } else if (attribute instanceof String) {
 | ||
|  |             when(profile.getAttribute(attributeName, String.class)).thenReturn((String) attribute);
 | ||
|  |         }
 | ||
|  |         // Add more conditions here if needed for other types
 | ||
|  | 
 | ||
|  |         return profile;
 | ||
|  |     }
 | ||
|  | }
 |