pointersubject.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package assert
  2. import (
  3. "fmt"
  4. )
  5. func Pointer(value interface{}) *PointerSubject {
  6. return &PointerSubject{value: value}
  7. }
  8. type PointerSubject struct {
  9. Subject
  10. value interface{}
  11. }
  12. func (subject *PointerSubject) Named(name string) *PointerSubject {
  13. subject.Subject.Named(name)
  14. return subject
  15. }
  16. func (subject *PointerSubject) Fail(verb string, other interface{}) {
  17. subject.FailWithMessage(fmt.Sprintf("Not true that %s %s <%v>.", subject.DisplayString(), verb, other))
  18. }
  19. func (subject *PointerSubject) DisplayString() string {
  20. return subject.Subject.DisplayString(fmt.Sprintf("%v", subject.value))
  21. }
  22. func (subject *PointerSubject) Equals(expectation interface{}) {
  23. if subject.value != expectation {
  24. subject.Fail("is equal to", expectation)
  25. }
  26. }
  27. func (subject *PointerSubject) IsNil() {
  28. if subject.value != nil {
  29. subject.FailWithMessage("Not true that " + subject.DisplayString() + " is nil.")
  30. }
  31. }
  32. func (subject *PointerSubject) IsNotNil() {
  33. if subject.value == nil {
  34. subject.FailWithMessage("Not true that " + subject.DisplayString() + " is not nil.")
  35. }
  36. }