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

jshao pushed a commit to branch branch-0.6
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-0.6 by this push:
     new 383508868 [#1903] feat(clients): add equals for `GravitinoMetalake`. 
(#4492)
383508868 is described below

commit 383508868324770b4d877e3019b7bf620a900a82
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Aug 12 20:45:42 2024 +0800

    [#1903] feat(clients): add equals for `GravitinoMetalake`. (#4492)
    
    ### What changes were proposed in this pull request?
    
    Add `equals()` and unit tests for `GravitinoMetalake`.
    
    ### Why are the changes needed?
    
    As issue mentioned, `GravitinoMetalake` class should have an equals
    method.
    
    Fix: #1903
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Unit test cases has been added.
    
    Co-authored-by: Edward Xu <[email protected]>
---
 .../apache/gravitino/client/GravitinoMetalake.java | 14 +++++++++++
 .../gravitino/client/TestGravitinoMetalake.java    | 27 +++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git 
a/clients/client-java/src/main/java/org/apache/gravitino/client/GravitinoMetalake.java
 
b/clients/client-java/src/main/java/org/apache/gravitino/client/GravitinoMetalake.java
index b7fd5d943..08685e1a2 100644
--- 
a/clients/client-java/src/main/java/org/apache/gravitino/client/GravitinoMetalake.java
+++ 
b/clients/client-java/src/main/java/org/apache/gravitino/client/GravitinoMetalake.java
@@ -843,6 +843,20 @@ public class GravitinoMetalake extends MetalakeDTO 
implements SupportsCatalogs,
     }
   }
 
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+
+    if (!(o instanceof GravitinoMetalake)) {
+      return false;
+    }
+
+    GravitinoMetalake that = (GravitinoMetalake) o;
+    return super.equals(that);
+  }
+
   /** @return the builder for creating a new instance of GravitinoMetaLake. */
   public static Builder builder() {
     return new Builder();
diff --git 
a/clients/client-java/src/test/java/org/apache/gravitino/client/TestGravitinoMetalake.java
 
b/clients/client-java/src/test/java/org/apache/gravitino/client/TestGravitinoMetalake.java
index 48ade28d1..78280d2a3 100644
--- 
a/clients/client-java/src/test/java/org/apache/gravitino/client/TestGravitinoMetalake.java
+++ 
b/clients/client-java/src/test/java/org/apache/gravitino/client/TestGravitinoMetalake.java
@@ -69,6 +69,8 @@ public class TestGravitinoMetalake extends TestBase {
 
   private static final String provider = "test";
 
+  private static final Instant testStartTime = Instant.now();
+
   protected static GravitinoClient gravitinoClient;
 
   @BeforeAll
@@ -701,14 +703,37 @@ public class TestGravitinoMetalake extends TestBase {
     Assertions.assertTrue(ex1.getMessage().contains("mock error"));
   }
 
+  @Test
+  public void testEquals() throws JsonProcessingException {
+    GravitinoMetalake metalake1 = createMetalake(client, "test", true);
+    GravitinoMetalake metalake2 = createMetalake(client, "test", true);
+    GravitinoMetalake metalake3 = createMetalake(client, "another-test", true);
+    GravitinoMetalake metalake4 = createMetalake(client, "test");
+    Assertions.assertEquals(metalake1, metalake1);
+    Assertions.assertEquals(metalake1, metalake2);
+    Assertions.assertNotEquals(metalake1, metalake3);
+    Assertions.assertNotEquals(metalake1, metalake4);
+    Assertions.assertNotEquals(metalake1, null);
+    Assertions.assertNotEquals(metalake1, new Object());
+  }
+
   static GravitinoMetalake createMetalake(GravitinoAdminClient client, String 
metalakeName)
       throws JsonProcessingException {
+    return createMetalake(client, metalakeName, false);
+  }
+
+  static GravitinoMetalake createMetalake(
+      GravitinoAdminClient client, String metalakeName, boolean fixedAudit)
+      throws JsonProcessingException {
     MetalakeDTO mockMetalake =
         MetalakeDTO.builder()
             .withName(metalakeName)
             .withComment("comment")
             .withAudit(
-                
AuditDTO.builder().withCreator("creator").withCreateTime(Instant.now()).build())
+                AuditDTO.builder()
+                    .withCreator("creator")
+                    .withCreateTime(fixedAudit ? testStartTime : Instant.now())
+                    .build())
             .build();
     MetalakeCreateRequest req =
         new MetalakeCreateRequest(metalakeName, "comment", 
Collections.emptyMap());

Reply via email to