mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-31 10:39:30 +00:00 
			
		
		
		
	Fix test case team ownership listing (#16286)
* fix: test case team ownership listing * fix: moved from forEach to stream.map.collect * style: ran java linting --------- Co-authored-by: Ashish Gupta <ashish@getcollate.io>
This commit is contained in:
		
							parent
							
								
									263afbeb5c
								
							
						
					
					
						commit
						02d0a3e06e
					
				| @ -16,6 +16,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; | ||||
| import java.io.IOException; | ||||
| import java.util.List; | ||||
| import java.util.UUID; | ||||
| import java.util.stream.Collectors; | ||||
| import javax.json.JsonPatch; | ||||
| import javax.validation.Valid; | ||||
| import javax.validation.constraints.Max; | ||||
| @ -42,6 +43,7 @@ import org.openmetadata.schema.EntityInterface; | ||||
| import org.openmetadata.schema.api.data.RestoreEntity; | ||||
| import org.openmetadata.schema.api.tests.CreateLogicalTestCases; | ||||
| import org.openmetadata.schema.api.tests.CreateTestCase; | ||||
| import org.openmetadata.schema.entity.teams.User; | ||||
| import org.openmetadata.schema.tests.TestCase; | ||||
| import org.openmetadata.schema.tests.TestSuite; | ||||
| import org.openmetadata.schema.tests.type.TestCaseResult; | ||||
| @ -379,13 +381,24 @@ public class TestCaseResource extends EntityResource<TestCase, TestCaseRepositor | ||||
|     searchListFilter.addQueryParam("domain", domain); | ||||
|     if (!nullOrEmpty(owner)) { | ||||
|       EntityInterface entity; | ||||
|       StringBuffer owners = new StringBuffer(); | ||||
|       try { | ||||
|         entity = Entity.getEntityByName(Entity.USER, owner, "", ALL); | ||||
|       } catch (Exception e) { | ||||
|         // If the owner is not a user, then we'll try to geta team | ||||
|         entity = Entity.getEntityByName(Entity.TEAM, owner, "", ALL); | ||||
|         User user = (User) Entity.getEntityByName(Entity.USER, owner, "teams", ALL); | ||||
|         owners.append(user.getId().toString()); | ||||
|         if (!nullOrEmpty(user.getTeams())) { | ||||
|           owners | ||||
|               .append(",") | ||||
|               .append( | ||||
|                   user.getTeams().stream() | ||||
|                       .map(t -> t.getId().toString()) | ||||
|                       .collect(Collectors.joining(","))); | ||||
|         } | ||||
|       searchListFilter.addQueryParam("owner", entity.getId().toString()); | ||||
|       } catch (Exception e) { | ||||
|         // If the owner is not a user, then we'll try to get team | ||||
|         entity = Entity.getEntityByName(Entity.TEAM, owner, "", ALL); | ||||
|         owners.append(entity.getId().toString()); | ||||
|       } | ||||
|       searchListFilter.addQueryParam("owner", owners.toString()); | ||||
|     } | ||||
| 
 | ||||
|     if (startTimestamp != null) { | ||||
|  | ||||
| @ -106,7 +106,9 @@ public class SearchListFilter extends Filter<SearchListFilter> { | ||||
|   private String getOwnerCondition() { | ||||
|     String owner = getQueryParam("owner"); | ||||
|     if (!nullOrEmpty(owner)) { | ||||
|       return String.format("{\"term\": {\"owner.id\": \"%s\"}}", owner); | ||||
|       String ownerList = | ||||
|           Arrays.stream(owner.split(",")).collect(Collectors.joining("\", \"", "\"", "\"")); | ||||
|       return String.format("{\"terms\": {\"owner.id\": [%s]}}", ownerList); | ||||
|     } | ||||
|     return ""; | ||||
|   } | ||||
|  | ||||
| @ -742,8 +742,11 @@ public class TestCaseResourceTest extends EntityResourceTest<TestCase, CreateTes | ||||
|               .withParameterValues( | ||||
|                   List.of( | ||||
|                       new TestCaseParameterValue().withValue("20").withName("missingCountValue"))); | ||||
|       if (i % 2 == 0) { | ||||
|         // create 3 test cases with USER1_REF as owner | ||||
|       if (i == 2) { | ||||
|         // create 1 test cases with USER21_TEAM as owner | ||||
|         create.withOwner(TEAM21.getEntityReference()); | ||||
|       } else if (i % 2 == 0) { | ||||
|         // create 2 test cases with USER1_REF as owner | ||||
|         create.withOwner(USER2_REF); | ||||
|       } | ||||
|       TestCase testCase = createEntity(create, ADMIN_AUTH_HEADERS); | ||||
| @ -798,7 +801,15 @@ public class TestCaseResourceTest extends EntityResourceTest<TestCase, CreateTes | ||||
|     queryParams.clear(); | ||||
|     queryParams.put("owner", USER2_REF.getName()); | ||||
|     allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS); | ||||
|     assertEquals(3, allEntities.getData().size()); // we have 3 test cases with USER2_REF as owner | ||||
|     assertEquals(2, allEntities.getData().size()); // we have 2 test cases with USER2_REF as owner | ||||
| 
 | ||||
|     queryParams.put("owner", USER_TEAM21.getName()); | ||||
|     allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS); | ||||
|     assertEquals( | ||||
|         1, | ||||
|         allEntities | ||||
|             .getData() | ||||
|             .size()); // we have 1 test cases with TEAM21 as owner which USER_21 is part of | ||||
|   } | ||||
| 
 | ||||
|   public void putTestCaseResult(String fqn, TestCaseResult data, Map<String, String> authHeaders) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Teddy
						Teddy