@ParameterizedTest
    @ValueSource(strings = {"zk", "kraft"})
    public void testDescribeDoesNotFailWhenListingReassignmentIsUnauthorized(String quorum) throws Exception {
        adminClient = spy(adminClient);
        topicService.close(); // need to be closed before initializing a new one with the spy version of adminclient, otherwise will have the extra adminclient(s) not closed.
        ListPartitionReassignmentsResult result = AdminClientTestUtils.listPartitionReassignmentsResult(
                new ClusterAuthorizationException("Unauthorized"));

        doReturn(result).when(adminClient).listPartitionReassignments(
                Collections.singleton(new TopicPartition(testTopicName, 0))
        );

        topicService = new TopicCommand.TopicService(adminClient);

        TestUtils.createTopicWithAdmin(adminClient, testTopicName, scalaBrokers, scalaControllers, defaultNumPartitions, defaultReplicationFactor,
                scala.collection.immutable.Map$.MODULE$.empty(), new Properties()
        );

        String output = captureDescribeTopicStandardOut(buildTopicCommandOptionsWithBootstrap("--describe", "--topic", testTopicName));
        String[] rows = output.split(System.lineSeparator());
        assertEquals(2, rows.length, "Unexpected output: " + output);
        assertTrue(rows[0].startsWith(String.format("Topic: %s", testTopicName)), "Unexpected output: " + rows[0]);
    }
Test describe --under-min-isr-partitions option with four topics:
  (1) topic with partition under the configured min ISR count
  (2) topic with under-replicated partition (but not under min ISR count)
  (3) topic with offline partition
  (4) topic with fully replicated partition

Output should only display the (1) topic with partition under min ISR count and (3) topic with offline partition
tools/src/test/java/org/apache/kafka/tools/TopicCommandIntegrationTest.java