diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java index 6054dc08cbf..b0c137d45b0 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java @@ -691,6 +691,10 @@ public class TestCaseResource extends EntityResource testCaseIds = createLogicalTestCases.getTestCaseIds(); + if (testCaseIds == null || testCaseIds.isEmpty()) { + return new RestUtil.PutResponse<>(Response.Status.OK, testSuite, RestUtil.ENTITY_NO_CHANGE).toResponse(); + } + int existingTestCaseCount = repository.getTestCaseCount(testCaseIds); if (existingTestCaseCount != testCaseIds.size()) { throw new IllegalArgumentException("You are trying to add one or more test cases that do not exist."); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java index 65635e7d752..899f16f8e3f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java @@ -52,6 +52,7 @@ import org.openmetadata.service.resources.Collection; import org.openmetadata.service.resources.EntityResource; import org.openmetadata.service.security.Authorizer; import org.openmetadata.service.security.policyevaluator.OperationContext; +import org.openmetadata.service.util.FullyQualifiedName; import org.openmetadata.service.util.RestUtil; import org.openmetadata.service.util.ResultList; @@ -297,6 +298,7 @@ public class TestSuiteResource extends EntityResource createAndCheckEntity(create, ADMIN_AUTH_HEADERS), BAD_REQUEST, ENTITY_LINK_MATCH_ERROR); - create.withEntityLink(INVALID_LINK2).withTestSuite(TEST_TABLE1.getFullyQualifiedName()); + create.withEntityLink(INVALID_LINK2).withTestSuite(testSuite.getFullyQualifiedName()); assertResponseContains( () -> createAndCheckEntity(create, ADMIN_AUTH_HEADERS), NOT_FOUND, "table instance for non-existent not found"); @@ -176,7 +176,7 @@ public class TestCaseResourceTest extends EntityResourceTest createAndCheckEntity(create2, ADMIN_AUTH_HEADERS), @@ -607,14 +607,41 @@ public class TestCaseResourceTest extends EntityResourceTest()); + } + + @Test + public void delete_testCaseFromLogicalTestSuite(TestInfo test) throws IOException { TestSuiteResourceTest testSuiteResourceTest = new TestSuiteResourceTest(); // Create a logical Test Suite CreateTestSuite createLogicalTestSuite = testSuiteResourceTest.createRequest(test); TestSuite logicalTestSuite = testSuiteResourceTest.createEntity(createLogicalTestSuite, ADMIN_AUTH_HEADERS); // Create an executable test suite + TableResourceTest tableResourceTest = new TableResourceTest(); + CreateTable tableReq = + tableResourceTest + .createRequest(test) + .withName(test.getDisplayName()) + .withDatabaseSchema(DATABASE_SCHEMA.getFullyQualifiedName()) + .withOwner(USER1_REF) + .withColumns( + List.of( + new Column() + .withName(C1) + .withDisplayName("c1") + .withDataType(ColumnDataType.VARCHAR) + .withDataLength(10))) + .withOwner(USER1_REF); + Table table = tableResourceTest.createAndCheckEntity(tableReq, ADMIN_AUTH_HEADERS); + CreateTestSuite createExecutableTestSuite = testSuiteResourceTest.createRequest(table.getFullyQualifiedName()); TestSuite executableTestSuite = - testSuiteResourceTest.getEntityByName(TEST_TABLE1.getFullyQualifiedName(), "*", ADMIN_AUTH_HEADERS); + testSuiteResourceTest.createExecutableTestSuite(createExecutableTestSuite, ADMIN_AUTH_HEADERS); List testCases = new ArrayList();