package kafka
import (
"fmt"
"testing"
)
func TestError(t *testing.T) {
t.Parallel()
errorCodes := []Error{
Unknown,
OffsetOutOfRange,
InvalidMessage,
UnknownTopicOrPartition,
InvalidMessageSize,
LeaderNotAvailable,
NotLeaderForPartition,
RequestTimedOut,
BrokerNotAvailable,
ReplicaNotAvailable,
MessageSizeTooLarge,
StaleControllerEpoch,
OffsetMetadataTooLarge,
GroupLoadInProgress,
GroupCoordinatorNotAvailable,
NotCoordinatorForGroup,
InvalidTopic,
RecordListTooLarge,
NotEnoughReplicas,
NotEnoughReplicasAfterAppend,
InvalidRequiredAcks,
IllegalGeneration,
InconsistentGroupProtocol,
InvalidGroupId,
UnknownMemberId,
InvalidSessionTimeout,
RebalanceInProgress,
InvalidCommitOffsetSize,
TopicAuthorizationFailed,
GroupAuthorizationFailed,
ClusterAuthorizationFailed,
InvalidTimestamp,
UnsupportedSASLMechanism,
IllegalSASLState,
UnsupportedVersion,
TopicAlreadyExists,
InvalidPartitionNumber,
InvalidReplicationFactor,
InvalidReplicaAssignment,
InvalidConfiguration,
NotController,
InvalidRequest,
UnsupportedForMessageFormat,
PolicyViolation,
OutOfOrderSequenceNumber,
DuplicateSequenceNumber,
InvalidProducerEpoch,
InvalidTransactionState,
InvalidProducerIDMapping,
InvalidTransactionTimeout,
ConcurrentTransactions,
TransactionCoordinatorFenced,
TransactionalIDAuthorizationFailed,
SecurityDisabled,
BrokerAuthorizationFailed,
}
for _, err := range errorCodes {
t.Run(fmt.Sprintf("verify that error %d has a non-empty title, description, and error message", err), func(t *testing.T) {
if len(err.Title()) == 0 {
t.Error("empty title")
}
if len(err.Description()) == 0 {
t.Error("empty description")
}
if len(err.Error()) == 0 {
t.Error("empty error message")
}
})
}
t.Run("verify that an invalid error code has an empty title and description", func(t *testing.T) {
err := Error(-2)
if s := err.Title(); len(s) != 0 {
t.Error("non-empty title:", s)
}
if s := err.Description(); len(s) != 0 {
t.Error("non-empty description:", s)
}
})
}