mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-24 17:59:52 +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);
|
||||
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(",")));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// If the owner is not a user, then we'll try to geta team
|
||||
// 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", 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