github.com/hack0072008/kafka-go@v1.0.1/error_test.go (about)

     1  package kafka
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func TestError(t *testing.T) {
     9  	errorCodes := []Error{
    10  		Unknown,
    11  		OffsetOutOfRange,
    12  		InvalidMessage,
    13  		UnknownTopicOrPartition,
    14  		InvalidMessageSize,
    15  		LeaderNotAvailable,
    16  		NotLeaderForPartition,
    17  		RequestTimedOut,
    18  		BrokerNotAvailable,
    19  		ReplicaNotAvailable,
    20  		MessageSizeTooLarge,
    21  		StaleControllerEpoch,
    22  		OffsetMetadataTooLarge,
    23  		GroupLoadInProgress,
    24  		GroupCoordinatorNotAvailable,
    25  		NotCoordinatorForGroup,
    26  		InvalidTopic,
    27  		RecordListTooLarge,
    28  		NotEnoughReplicas,
    29  		NotEnoughReplicasAfterAppend,
    30  		InvalidRequiredAcks,
    31  		IllegalGeneration,
    32  		InconsistentGroupProtocol,
    33  		InvalidGroupId,
    34  		UnknownMemberId,
    35  		InvalidSessionTimeout,
    36  		RebalanceInProgress,
    37  		InvalidCommitOffsetSize,
    38  		TopicAuthorizationFailed,
    39  		GroupAuthorizationFailed,
    40  		ClusterAuthorizationFailed,
    41  		InvalidTimestamp,
    42  		UnsupportedSASLMechanism,
    43  		IllegalSASLState,
    44  		UnsupportedVersion,
    45  		TopicAlreadyExists,
    46  		InvalidPartitionNumber,
    47  		InvalidReplicationFactor,
    48  		InvalidReplicaAssignment,
    49  		InvalidConfiguration,
    50  		NotController,
    51  		InvalidRequest,
    52  		UnsupportedForMessageFormat,
    53  		PolicyViolation,
    54  		OutOfOrderSequenceNumber,
    55  		DuplicateSequenceNumber,
    56  		InvalidProducerEpoch,
    57  		InvalidTransactionState,
    58  		InvalidProducerIDMapping,
    59  		InvalidTransactionTimeout,
    60  		ConcurrentTransactions,
    61  		TransactionCoordinatorFenced,
    62  		TransactionalIDAuthorizationFailed,
    63  		SecurityDisabled,
    64  		BrokerAuthorizationFailed,
    65  		KafkaStorageError,
    66  		LogDirNotFound,
    67  		SASLAuthenticationFailed,
    68  		UnknownProducerId,
    69  		ReassignmentInProgress,
    70  		DelegationTokenAuthDisabled,
    71  		DelegationTokenNotFound,
    72  		DelegationTokenOwnerMismatch,
    73  		DelegationTokenRequestNotAllowed,
    74  		DelegationTokenAuthorizationFailed,
    75  		DelegationTokenExpired,
    76  		InvalidPrincipalType,
    77  		NonEmptyGroup,
    78  		GroupIdNotFound,
    79  		FetchSessionIDNotFound,
    80  		InvalidFetchSessionEpoch,
    81  		ListenerNotFound,
    82  		TopicDeletionDisabled,
    83  		FencedLeaderEpoch,
    84  		UnknownLeaderEpoch,
    85  		UnsupportedCompressionType,
    86  	}
    87  
    88  	for _, err := range errorCodes {
    89  		t.Run(fmt.Sprintf("verify that error %d has a non-empty title, description, and error message", err), func(t *testing.T) {
    90  			if len(err.Title()) == 0 {
    91  				t.Error("empty title")
    92  			}
    93  			if len(err.Description()) == 0 {
    94  				t.Error("empty description")
    95  			}
    96  			if len(err.Error()) == 0 {
    97  				t.Error("empty error message")
    98  			}
    99  		})
   100  	}
   101  
   102  	t.Run("verify that an invalid error code has an empty title and description", func(t *testing.T) {
   103  		err := Error(-2)
   104  
   105  		if s := err.Title(); len(s) != 0 {
   106  			t.Error("non-empty title:", s)
   107  		}
   108  
   109  		if s := err.Description(); len(s) != 0 {
   110  			t.Error("non-empty description:", s)
   111  		}
   112  	})
   113  }