dict_sub_hook_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package dict_sub_hook
  2. import (
  3. "testing"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/alias"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/mock_hand_sub_local"
  6. )
  7. type tester struct {
  8. t *testing.T
  9. dict *dictSubHook
  10. handSub *mock_hand_sub_local.MockHandlerSub
  11. handSub2 *mock_hand_sub_local.MockHandlerSub
  12. }
  13. var (
  14. qTopicHand1 = alias.NewATopic("hand_topic1")
  15. qTopicHand2 = alias.NewATopic("hand_topic2")
  16. )
  17. func TestDictSubWebHook(t *testing.T) {
  18. sf := &tester{
  19. t: t,
  20. handSub: mock_hand_sub_local.NewMockHandlerSub(qTopicHand1, "hand_name1"),
  21. handSub2: mock_hand_sub_local.NewMockHandlerSub(qTopicHand2, "hand_name2"),
  22. }
  23. sf.new()
  24. sf.add()
  25. sf.read()
  26. sf.unsub()
  27. }
  28. // Отписка обработчика от топика.
  29. func (sf *tester) unsub() {
  30. sf.t.Log("unsub")
  31. sf.dict.Unsubscribe(sf.handSub)
  32. }
  33. // Чтение входящего сообщения по подписке.
  34. func (sf *tester) read() {
  35. sf.t.Log("read")
  36. sf.dict.Read([]byte("test_msg"))
  37. }
  38. // Добавляет хуки в словарь.
  39. func (sf *tester) add() {
  40. sf.t.Log("add")
  41. sf.addBad1()
  42. sf.addGood1()
  43. }
  44. func (sf *tester) addGood1() {
  45. sf.t.Log("addGood1")
  46. sf.dict.Subscribe(sf.handSub)
  47. sf.dict.Subscribe(sf.handSub)
  48. sf.dict.Subscribe(sf.handSub2)
  49. if _len := len(sf.dict.dict); _len != 2 {
  50. sf.t.Fatalf("new(): len(%v)!=2", _len)
  51. }
  52. }
  53. // нет веб-хука для добавления.
  54. func (sf *tester) addBad1() {
  55. sf.t.Log("addBad1")
  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. }