dict_sub_hook_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package dict_sub_hook
  2. import (
  3. "testing"
  4. "gitp78su.ipnodns.ru/svi/kern/v3/mock/mock_hand_sub_local"
  5. )
  6. type tester struct {
  7. t *testing.T
  8. dict *dictSubHook
  9. handSub *mock_hand_sub_local.MockHandlerSub
  10. handSub2 *mock_hand_sub_local.MockHandlerSub
  11. }
  12. func TestDictSubWebHook(t *testing.T) {
  13. sf := &tester{
  14. t: t,
  15. handSub: mock_hand_sub_local.NewMockHandlerSub("hand_topic1", "hand_name1"),
  16. handSub2: mock_hand_sub_local.NewMockHandlerSub("hand_topic2", "hand_name2"),
  17. }
  18. sf.new()
  19. sf.add()
  20. sf.read()
  21. sf.unsub()
  22. }
  23. // Отписка обработчика от топика
  24. func (sf *tester) unsub() {
  25. sf.t.Log("unsub")
  26. sf.dict.Unsubscribe(sf.handSub)
  27. }
  28. // Чтение входящего сообщения по подписке
  29. func (sf *tester) read() {
  30. sf.t.Log("read")
  31. sf.dict.Read([]byte("test_msg"))
  32. }
  33. // Добавляет хуки ыв словарь
  34. func (sf *tester) add() {
  35. sf.t.Log("add")
  36. sf.addBad1()
  37. sf.addGood1()
  38. }
  39. func (sf *tester) addGood1() {
  40. sf.t.Log("addGood1")
  41. sf.dict.Subscribe(sf.handSub)
  42. sf.dict.Subscribe(sf.handSub)
  43. sf.dict.Subscribe(sf.handSub2)
  44. if _len := len(sf.dict.dict); _len != 2 {
  45. sf.t.Fatalf("new(): len(%v)!=2", _len)
  46. }
  47. }
  48. // нет веб-хука для добавления
  49. func (sf *tester) addBad1() {
  50. sf.t.Log("addBad1")
  51. defer func() {
  52. if _panic := recover(); _panic == nil {
  53. sf.t.Fatalf("addBad1(): panic==nil")
  54. }
  55. }()
  56. sf.dict.Subscribe(nil)
  57. }
  58. // Создание словаря
  59. func (sf *tester) new() {
  60. sf.t.Log("new")
  61. sf.dict = NewDictSubHook().(*dictSubHook)
  62. if sf.dict == nil {
  63. sf.t.Fatalf("new(): dict==nil")
  64. }
  65. if _len := len(sf.dict.dict); _len != 0 {
  66. sf.t.Fatalf("new(): len(%v)!=0", _len)
  67. }
  68. }