From c7bc36491b8b3b00da74b9bfab26e376b1dc5aac Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Wed, 17 Jul 2024 20:25:40 +0530 Subject: [PATCH] Issue #17012: Multi User/Team Ownership - Fix Tests - Part 4 --- .../service/resources/EntityResourceTest.java | 13 ++++++++++--- .../apis/APICollectionResourceTest.java | 2 +- .../apis/APIEndpointResourceTest.java | 7 +++++-- .../apps/AppMarketPlaceResourceTest.java | 2 +- .../databases/DatabaseSchemaResourceTest.java | 14 +------------- .../resources/topics/TopicResourceTest.java | 18 +++++++++++++++--- .../marketplace/appMarketPlaceDefinition.json | 4 ++-- 7 files changed, 35 insertions(+), 25 deletions(-) diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java index aa2770c5f496..a46d1974661c 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java @@ -3242,9 +3242,16 @@ protected final void assertCommonFieldChange(String fieldName, Object expected, } if (fieldName.equals(FIELD_EXPERTS) || fieldName.equals(FIELD_REVIEWERS)) { assertEntityReferencesFieldChange(expected, actual); - } else if (fieldName.endsWith(FIELD_OWNERS) - || fieldName.equals(FIELD_DOMAIN) - || fieldName.equals(FIELD_PARENT)) { + } else if (fieldName.endsWith(FIELD_OWNERS) && (expected != null && actual != null)) { + @SuppressWarnings("unchecked") + List expectedOwners = + expected instanceof List + ? (List) expected + : JsonUtils.readObjects(expected.toString(), EntityReference.class); + List actualOwners = + JsonUtils.readObjects(actual.toString(), EntityReference.class); + assertOwners(expectedOwners, actualOwners); + } else if (fieldName.equals(FIELD_DOMAIN) || fieldName.equals(FIELD_PARENT)) { assertEntityReferenceFieldChange(expected, actual); } else if (fieldName.endsWith(FIELD_TAGS)) { @SuppressWarnings("unchecked") diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java index c49344e5ea3f..a6c7744b42e3 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APICollectionResourceTest.java @@ -113,7 +113,7 @@ public APICollection validateGetWithDifferentFields(APICollection apiCollection, : getEntity(apiCollection.getId(), fields, ADMIN_AUTH_HEADERS); assertListNotNull(apiCollection.getService(), apiCollection.getServiceType()); - fields = "owner,tags"; + fields = "owners,tags"; apiCollection = byName ? getEntityByName(apiCollection.getFullyQualifiedName(), fields, ADMIN_AUTH_HEADERS) diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java index a775d15665aa..dd6af7fb2ba1 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apis/APIEndpointResourceTest.java @@ -6,6 +6,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.openmetadata.service.Entity.FIELD_OWNERS; import static org.openmetadata.service.resources.topics.TopicResourceTest.getField; +import static org.openmetadata.service.util.EntityUtil.fieldAdded; +import static org.openmetadata.service.util.EntityUtil.fieldDeleted; import static org.openmetadata.service.util.EntityUtil.fieldUpdated; import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS; import static org.openmetadata.service.util.TestUtils.UpdateType.MINOR_UPDATE; @@ -145,7 +147,8 @@ void put_endPointAttributes_200_ok(TestInfo test) throws IOException { .withRequestMethod(APIRequestMethod.POST); ChangeDescription change = getChangeDescription(apiEndpoint, MINOR_UPDATE); - fieldUpdated(change, FIELD_OWNERS, USER1_REF, TEAM11_REF); + fieldAdded(change, FIELD_OWNERS, List.of(TEAM11_REF)); + fieldDeleted(change, FIELD_OWNERS, List.of(USER1_REF)); fieldUpdated(change, "requestMethod", "GET", "POST"); updateAndCheckEntity( @@ -212,7 +215,7 @@ public APIEndpoint validateGetWithDifferentFields(APIEndpoint endpoint, boolean : getAPIEndpoint(endpoint.getId(), fields, ADMIN_AUTH_HEADERS); assertListNull(endpoint.getOwners(), endpoint.getFollowers()); - fields = "owner, followers, tags"; + fields = "owners, followers, tags"; endpoint = byName ? getAPIEndpointByName(endpoint.getFullyQualifiedName(), fields, ADMIN_AUTH_HEADERS) diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppMarketPlaceResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppMarketPlaceResourceTest.java index 1dc22c54d600..8028893a4251 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppMarketPlaceResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/apps/AppMarketPlaceResourceTest.java @@ -98,7 +98,7 @@ public AppMarketPlaceDefinition validateGetWithDifferentFields( byName ? getEntityByName(entity.getFullyQualifiedName(), fields, ADMIN_AUTH_HEADERS) : getEntity(entity.getId(), fields, ADMIN_AUTH_HEADERS); - TestUtils.assertListNull(entity.getOwner()); + TestUtils.assertListNull(entity.getOwners()); fields = "owners,tags"; entity = diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java index beeadfbf9339..e914ac2eb52d 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java @@ -54,7 +54,6 @@ import org.openmetadata.service.resources.EntityResourceTest; import org.openmetadata.service.resources.databases.DatabaseSchemaResource.DatabaseSchemaList; import org.openmetadata.service.util.FullyQualifiedName; -import org.openmetadata.service.util.JsonUtils; import org.openmetadata.service.util.TestUtils; @Slf4j @@ -253,17 +252,6 @@ public void compareEntities( @Override public void assertFieldChange(String fieldName, Object expected, Object actual) { - if (fieldName.endsWith("owners") && (expected != null && actual != null)) { - @SuppressWarnings("unchecked") - List expectedOwners = - expected instanceof List - ? (List) expected - : JsonUtils.readObjects(expected.toString(), EntityReference.class); - List actualOwners = - JsonUtils.readObjects(actual.toString(), EntityReference.class); - assertOwners(expectedOwners, actualOwners); - } else { - assertCommonFieldChange(fieldName, expected, actual); - } + assertCommonFieldChange(fieldName, expected, actual); } } diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java index 1a24e3752c3b..7cd6f5a48818 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/topics/TopicResourceTest.java @@ -165,7 +165,8 @@ void put_topicAttributes_200_ok(TestInfo test) throws IOException { .withCleanupPolicies(List.of(CleanupPolicy.DELETE)); ChangeDescription change = getChangeDescription(topic, MINOR_UPDATE); - fieldUpdated(change, FIELD_OWNERS, USER1_REF, TEAM11_REF); + fieldDeleted(change, FIELD_OWNERS, List.of(USER1_REF)); + fieldAdded(change, FIELD_OWNERS, List.of(TEAM11_REF)); fieldUpdated(change, "maximumMessageSize", 1, 2); fieldUpdated(change, "minimumInSyncReplicas", 1, 2); fieldUpdated(change, "partitions", 1, 2); @@ -240,7 +241,6 @@ void patch_topicAttributes_200_ok(TestInfo test) throws IOException { .withCleanupPolicies(List.of(CleanupPolicy.DELETE)); ChangeDescription change = getChangeDescription(topic, MINOR_UPDATE); - fieldUpdated(change, FIELD_OWNERS, USER1_REF, TEAM11_REF); fieldUpdated(change, "maximumMessageSize", 1, 2); fieldUpdated(change, "minimumInSyncReplicas", 1, 2); fieldUpdated(change, "partitions", 1, 2); @@ -249,6 +249,8 @@ void patch_topicAttributes_200_ok(TestInfo test) throws IOException { fieldUpdated(change, "retentionSize", 1.0, 2.0); fieldDeleted(change, "cleanupPolicies", List.of(CleanupPolicy.COMPACT)); fieldAdded(change, "cleanupPolicies", List.of(CleanupPolicy.DELETE)); + fieldDeleted(change, "owners", List.of(USER1_REF)); + fieldAdded(change, "owners", List.of(TEAM11_REF)); patchEntityAndCheck(topic, origJson, ADMIN_AUTH_HEADERS, MINOR_UPDATE, change); } @@ -351,7 +353,8 @@ void patch_usingFqn_topicAttributes_200_ok(TestInfo test) throws IOException { .withCleanupPolicies(List.of(CleanupPolicy.DELETE)); ChangeDescription change = getChangeDescription(topic, MINOR_UPDATE); - fieldUpdated(change, FIELD_OWNERS, USER1_REF, TEAM11_REF); + fieldDeleted(change, FIELD_OWNERS, List.of(USER1_REF)); + fieldAdded(change, FIELD_OWNERS, List.of(TEAM11_REF)); fieldUpdated(change, "maximumMessageSize", 1, 2); fieldUpdated(change, "minimumInSyncReplicas", 1, 2); fieldUpdated(change, "partitions", 1, 2); @@ -552,6 +555,15 @@ public void assertFieldChange(String fieldName, Object expected, Object actual) SchemaType expectedSchemaType = (SchemaType) expected; SchemaType actualSchemaType = SchemaType.fromValue(actual.toString()); assertEquals(expectedSchemaType, actualSchemaType); + } else if (fieldName.endsWith("owners") && (expected != null && actual != null)) { + @SuppressWarnings("unchecked") + List expectedOwners = + expected instanceof List + ? (List) expected + : JsonUtils.readObjects(expected.toString(), EntityReference.class); + List actualOwners = + JsonUtils.readObjects(actual.toString(), EntityReference.class); + assertOwners(expectedOwners, actualOwners); } else { assertCommonFieldChange(fieldName, expected, actual); } diff --git a/openmetadata-spec/src/main/resources/json/schema/entity/applications/marketplace/appMarketPlaceDefinition.json b/openmetadata-spec/src/main/resources/json/schema/entity/applications/marketplace/appMarketPlaceDefinition.json index fe9922a8e150..e29a6ab46727 100644 --- a/openmetadata-spec/src/main/resources/json/schema/entity/applications/marketplace/appMarketPlaceDefinition.json +++ b/openmetadata-spec/src/main/resources/json/schema/entity/applications/marketplace/appMarketPlaceDefinition.json @@ -31,8 +31,8 @@ "description": "FullyQualifiedName same as `name`.", "$ref": "../../../type/basic.json#/definitions/fullyQualifiedEntityName" }, - "owner": { - "description": "Owner of this workflow.", + "owners": { + "description": "Owners of this workflow.", "$ref": "../../../type/entityReferenceList.json", "default": null },