be_zero_matcher.go 638 B

1234567891011121314151617181920212223242526272829
  1. package matchers
  2. import (
  3. "reflect"
  4. "github.com/onsi/gomega/format"
  5. )
  6. type BeZeroMatcher struct {
  7. }
  8. func (matcher *BeZeroMatcher) Match(actual interface{}) (success bool, err error) {
  9. if actual == nil {
  10. return true, nil
  11. }
  12. zeroValue := reflect.Zero(reflect.TypeOf(actual)).Interface()
  13. return reflect.DeepEqual(zeroValue, actual), nil
  14. }
  15. func (matcher *BeZeroMatcher) FailureMessage(actual interface{}) (message string) {
  16. return format.Message(actual, "to be zero-valued")
  17. }
  18. func (matcher *BeZeroMatcher) NegatedFailureMessage(actual interface{}) (message string) {
  19. return format.Message(actual, "not to be zero-valued")
  20. }