delivery_test.go 929 B

123456789101112131415161718192021222324252627282930313233
  1. package amqp
  2. import "testing"
  3. func shouldNotPanic(t *testing.T) {
  4. if err := recover(); err != nil {
  5. t.Fatalf("should not panic, got: %s", err)
  6. }
  7. }
  8. // A closed delivery chan could produce zero value. Ack/Nack/Reject on these
  9. // deliveries can produce a nil pointer panic. Instead return an error when
  10. // the method can never be successful.
  11. func TestAckZeroValueAcknowledgerDoesNotPanic(t *testing.T) {
  12. defer shouldNotPanic(t)
  13. if err := (Delivery{}).Ack(false); err == nil {
  14. t.Errorf("expected Delivery{}.Ack to error")
  15. }
  16. }
  17. func TestNackZeroValueAcknowledgerDoesNotPanic(t *testing.T) {
  18. defer shouldNotPanic(t)
  19. if err := (Delivery{}).Nack(false, false); err == nil {
  20. t.Errorf("expected Delivery{}.Ack to error")
  21. }
  22. }
  23. func TestRejectZeroValueAcknowledgerDoesNotPanic(t *testing.T) {
  24. defer shouldNotPanic(t)
  25. if err := (Delivery{}).Reject(false); err == nil {
  26. t.Errorf("expected Delivery{}.Ack to error")
  27. }
  28. }