mock_hand_serve_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package mock_hand_serve
  2. import (
  3. "testing"
  4. )
  5. type tester struct {
  6. t *testing.T
  7. hand *MockHandlerServe
  8. }
  9. func TestMockHandleServe(t *testing.T) {
  10. sf := &tester{
  11. t: t,
  12. }
  13. sf.new()
  14. sf.back()
  15. }
  16. // Проверка обратного вызова
  17. func (sf *tester) back() {
  18. sf.t.Log("back")
  19. sf.backBad1()
  20. sf.backGood1()
  21. }
  22. func (sf *tester) backGood1() {
  23. sf.t.Log("backGood1")
  24. binMsg, err := sf.hand.FnBack([]byte("test_msg"))
  25. if err != nil {
  26. sf.t.Fatalf("backGood1(): err=%v", err)
  27. }
  28. if string(binMsg) != "test_msg" {
  29. sf.t.Fatalf("backGood1(): binMsg(%v)!='test_msg'", string(binMsg))
  30. }
  31. }
  32. // Что-то сломалось
  33. func (sf *tester) backBad1() {
  34. sf.t.Log("backBad1")
  35. sf.hand.IsBad_.Set()
  36. binMsg, err := sf.hand.FnBack([]byte("test_msg"))
  37. if err == nil {
  38. sf.t.Fatalf("backBad1(): err==nil")
  39. }
  40. if binMsg != nil {
  41. sf.t.Fatalf("backBad1(): binMsg!=nil")
  42. }
  43. sf.hand.IsBad_.Reset()
  44. }
  45. // Создание мок-обработчика запросов
  46. func (sf *tester) new() {
  47. sf.t.Log("new")
  48. sf.newBad1()
  49. sf.newGood1()
  50. }
  51. func (sf *tester) newGood1() {
  52. sf.t.Log("newGood1")
  53. sf.hand = NewMockHandlerServe("test_topic", "test_name")
  54. if sf.hand == nil {
  55. sf.t.Fatalf("newGood1(): handler==nil")
  56. }
  57. if name := sf.hand.Name(); name != "test_name" {
  58. sf.t.Fatalf("newGood1(): name(%v)!='test_name'", name)
  59. }
  60. if topic := sf.hand.Topic(); topic != "test_topic" {
  61. sf.t.Fatalf("newGood1(): topic(%v)!='test_topic'", topic)
  62. }
  63. }
  64. // Нет топика для создания
  65. func (sf *tester) newBad1() {
  66. sf.t.Log("newBad1")
  67. defer func() {
  68. if _panic := recover(); _panic == nil {
  69. sf.t.Fatalf("")
  70. }
  71. }()
  72. _ = NewMockHandlerServe("", "test_name")
  73. }