This is an automated email from the ASF dual-hosted git repository.

nbonte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit d160138d5e7d23cd8c4345dba55c140dc9bc84b2
Author: Shraddha Chauhan <shraddha.chau...@freestoneinfotech.com>
AuthorDate: Tue Aug 17 16:05:09 2021 +0530

    ATLAS-3917: While deleting parent tag, shows incorrect message
    
    Signed-off-by: Nikhil Bonte <nbo...@apache.org>
---
 .../store/graph/v2/AtlasTypeDefGraphStoreV2.java   |  4 ++--
 .../v2/AtlasClassificationDefStoreV2Test.java      | 27 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasTypeDefGraphStoreV2.java
 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasTypeDefGraphStoreV2.java
index b9d41bb..5da6fde 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasTypeDefGraphStoreV2.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasTypeDefGraphStoreV2.java
@@ -270,9 +270,9 @@ public class AtlasTypeDefGraphStoreV2 extends 
AtlasTypeDefGraphStore {
 
     void deleteTypeVertex(AtlasVertex vertex) throws AtlasBaseException {
         Iterator<AtlasEdge> inEdges = 
vertex.getEdges(AtlasEdgeDirection.IN).iterator();
-
         if (inEdges.hasNext()) {
-            throw new AtlasBaseException(AtlasErrorCode.TYPE_HAS_REFERENCES);
+            String name        = 
vertex.getProperty(Constants.TYPENAME_PROPERTY_KEY, String.class);
+            throw new AtlasBaseException(AtlasErrorCode.TYPE_HAS_REFERENCES, 
name);
         }
 
         Iterable<AtlasEdge> edges = vertex.getEdges(AtlasEdgeDirection.OUT);
diff --git 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasClassificationDefStoreV2Test.java
 
b/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasClassificationDefStoreV2Test.java
index 3242a33..b8f52f9 100644
--- 
a/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasClassificationDefStoreV2Test.java
+++ 
b/repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasClassificationDefStoreV2Test.java
@@ -17,16 +17,26 @@
  */
 package org.apache.atlas.repository.store.graph.v2;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertEquals;
 
 import com.google.inject.Inject;
+import org.apache.atlas.AtlasErrorCode;
 import org.apache.atlas.TestModules;
+import org.apache.atlas.exception.AtlasBaseException;
+import org.apache.atlas.repository.Constants;
+import org.apache.atlas.repository.graphdb.AtlasEdge;
+import org.apache.atlas.repository.graphdb.AtlasEdgeDirection;
+import org.apache.atlas.repository.graphdb.AtlasVertex;
 import org.apache.atlas.type.AtlasTypeRegistry;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Guice;
 import org.testng.annotations.Test;
 
+import java.util.ArrayList;
+
 /**
  * Tests for AtlasClassificationDefStoreV2
  */
@@ -65,4 +75,21 @@ public class AtlasClassificationDefStoreV2Test {
   public void testIsValidName(String data, boolean expected) {
     assertEquals(classificationDefStore.isValidName(data), expected);
   }
+
+  @Test
+  public void testDeleteReferencedTraitFail() {
+    AtlasVertex typeVertex = mock(AtlasVertex.class);
+    when(typeVertex.getProperty(Constants.TYPENAME_PROPERTY_KEY, 
String.class)).thenReturn("Tag11");
+    when(typeVertex.getEdges(AtlasEdgeDirection.IN)).thenReturn(() -> {
+      ArrayList<AtlasEdge> list = new ArrayList<>();
+      list.add(mock(AtlasEdge.class));
+      return list.iterator();
+    });
+    try {
+      classificationDefStore.deleteByName("Tag11", typeVertex );
+    } catch (AtlasBaseException abe) {
+      assertEquals(abe.getMessage(), 
AtlasErrorCode.TYPE_HAS_REFERENCES.getFormattedErrorMessage("Tag11"));
+      assertEquals(abe.getAtlasErrorCode() , 
AtlasErrorCode.TYPE_HAS_REFERENCES);
+    }
+  }
 }
\ No newline at end of file

Reply via email to