errorsubject.go 953 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package unit
  2. import (
  3. "fmt"
  4. )
  5. type ErrorSubject struct {
  6. *Subject
  7. value error
  8. }
  9. func NewErrorSubject(base *Subject, value error) *ErrorSubject {
  10. subject := new(StringSubject)
  11. subject.Subject = base
  12. subject.value = value
  13. return subject
  14. }
  15. func (subject *ErrorSubject) Named(name string) *ErrorSubject {
  16. subject.Subject.Named(name)
  17. return subject
  18. }
  19. func (subject *ErrorSubject) Fail(verb string, other error) {
  20. subject.FailWithMessage("Not true that " + subject.DisplayString() + " " + verb + " <" + other.Error() + ">.")
  21. }
  22. func (subject *ErrorSubject) DisplayString() string {
  23. return subject.Subject.DisplayString(subject.value.Error())
  24. }
  25. func (subject *ErrorSubject) Equals(expectation error) {
  26. if subject.value != expectation {
  27. subject.Fail("is equal to", expectation)
  28. }
  29. }
  30. func (subject *ErrorSubject) IsNil() {
  31. if subject.value != nil {
  32. subject.FailWithMethod("Not true that " + subject.DisplayString() + " is nil.")
  33. }
  34. }