diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java b/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java index a78452cbd33..3cc938c8c48 100644 --- a/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java +++ b/clients/cli/src/main/java/org/apache/gravitino/cli/outputs/TableFormat.java @@ -665,9 +665,10 @@ public String getOutput(Audit audit) { Column columnModifyTime = new Column(context, "modify time"); columnCreator.addCell(audit.creator()); - columnCreateTime.addCell(audit.createTime()); - columnModified.addCell(audit.lastModifier()); - columnModifyTime.addCell(audit.lastModifiedTime()); + columnCreateTime.addCell(audit.createTime() == null ? "N/A" : audit.createTime().toString()); + columnModified.addCell(audit.lastModifier() == null ? "N/A" : audit.lastModifier()); + columnModifyTime.addCell( + audit.lastModifiedTime() == null ? "N/A" : audit.lastModifiedTime().toString()); return getTableFormat(columnCreator, columnCreateTime, columnModified, columnModifyTime); } diff --git a/clients/cli/src/test/java/org/apache/gravitino/cli/output/TestTableFormat.java b/clients/cli/src/test/java/org/apache/gravitino/cli/output/TestTableFormat.java index d561fb692ee..03f224de904 100644 --- a/clients/cli/src/test/java/org/apache/gravitino/cli/output/TestTableFormat.java +++ b/clients/cli/src/test/java/org/apache/gravitino/cli/output/TestTableFormat.java @@ -378,8 +378,14 @@ void testListTableWithTableFormat() { @Test void testAuditWithTableFormat() { CommandContext mockContext = getMockContext(); - Audit mockAudit = getMockAudit(); + Audit mockAudit = mock(Audit.class); + when(mockAudit.creator()).thenReturn("demo_user"); + when(mockAudit.createTime()).thenReturn(Instant.ofEpochMilli(1611111111111L)); + when(mockAudit.lastModifier()).thenReturn("demo_user"); + when(mockAudit.lastModifiedTime()).thenReturn(Instant.ofEpochMilli(1611111111111L)); + TableFormat.output(mockAudit, mockContext); + String output = new String(outContent.toByteArray(), StandardCharsets.UTF_8).trim(); Assertions.assertEquals( "+-----------+--------------------------+-----------+--------------------------+\n" @@ -390,6 +396,27 @@ void testAuditWithTableFormat() { output); } + @Test + void testAuditWithTableFormatWithNullValues() { + CommandContext mockContext = getMockContext(); + Audit mockAudit = mock(Audit.class); + when(mockAudit.creator()).thenReturn("demo_user"); + when(mockAudit.createTime()).thenReturn(null); + when(mockAudit.lastModifier()).thenReturn(null); + when(mockAudit.lastModifiedTime()).thenReturn(null); + + TableFormat.output(mockAudit, mockContext); + + String output = new String(outContent.toByteArray(), StandardCharsets.UTF_8).trim(); + Assertions.assertEquals( + "+-----------+-------------+----------+-------------+\n" + + "| Creator | Create time | Modified | Modify time |\n" + + "+-----------+-------------+----------+-------------+\n" + + "| demo_user | N/A | N/A | N/A |\n" + + "+-----------+-------------+----------+-------------+", + output); + } + @Test void testOutputWithUnsupportType() { CommandContext mockContext = getMockContext(); @@ -478,14 +505,4 @@ private org.apache.gravitino.rel.Column getMockColumn( return mockColumn; } - - private Audit getMockAudit() { - Audit mockAudit = mock(Audit.class); - when(mockAudit.creator()).thenReturn("demo_user"); - when(mockAudit.createTime()).thenReturn(Instant.ofEpochMilli(1611111111111L)); - when(mockAudit.lastModifier()).thenReturn("demo_user"); - when(mockAudit.lastModifiedTime()).thenReturn(Instant.ofEpochMilli(1611111111111L)); - - return mockAudit; - } }