| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package dict_topic_serve
- import (
- "testing"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev2/mock_hand_serve"
- )
- type tester struct {
- t *testing.T
- dict *dictServe
- hand *mock_hand_serve.MockHandlerServe
- }
- func TestDictSub(t *testing.T) {
- sf := &tester{
- t: t,
- hand: mock_hand_serve.NewMockHandlerServe("topic_dict_serve", "name_dict_serve"),
- }
- sf.new()
- sf.addBad1()
- sf.addGood1()
- sf.addBad2()
- sf.sendBad1()
- sf.sendBad2()
- sf.sendGood1()
- sf.delBad1()
- sf.delGood2()
- sf.callBad3()
- }
- // Работа ядра завершена.
- func (sf *tester) callBad3() {
- sf.t.Log("callBad3")
- ctx := kctx.GetKernelCtx().Hassert("callBad3()")
- ctx.Cancel()
- ctx.Wg().Wait()
- sf.dict.Register(sf.hand).Hassert("callBad3()")
- res := sf.dict.SendRequest(sf.hand.Topic(), []byte("test"))
- if res.IsOk() {
- sf.t.Fatalf("callBad3(): err==nil")
- }
- }
- func (sf *tester) delGood2() {
- sf.t.Log("delGood2()")
- defer func() {
- if _panic := recover(); _panic != nil {
- sf.t.Fatalf("delGood2(): panic=%v", _panic)
- }
- }()
- sf.dict.Unregister(sf.hand)
- sf.dict.Unregister(sf.hand)
- }
- // Удаляет, чего нет.
- func (sf *tester) delBad1() {
- sf.t.Log("delBad1()")
- sf.dict.Unregister(nil)
- }
- func (sf *tester) sendGood1() {
- sf.t.Log("sendGood1")
- TimeoutDefault = 5000
- res := sf.dict.SendRequest(sf.hand.Topic(), []byte("test_good"))
- if res.IsErr() {
- sf.t.Fatalf("sendGood1(): err=%v", res.Err())
- }
- if res.Val() == nil {
- sf.t.Fatalf("sendGood1(): binMsg==nil")
- }
- }
- // Обработчик вернул ошибку.
- func (sf *tester) sendBad2() {
- sf.t.Log("sendBad2")
- sf.hand.IsBad_.Set()
- res := sf.dict.SendRequest(sf.hand.Topic(), []byte("test"))
- if res.IsOk() {
- sf.t.Fatalf("sendBad2(): err==nil")
- }
- sf.hand.IsBad_.Reset()
- }
- // повторное добавление обработчика.
- func (sf *tester) addBad2() {
- sf.t.Log("addBad2")
- res := sf.dict.Register(sf.hand)
- if res.IsOk() {
- sf.t.Fatalf("addBad2(): err==nil")
- }
- }
- // Правильное добавление обработчика подписки.
- func (sf *tester) addGood1() {
- sf.t.Log("addGood1()")
- sf.dict.Register(sf.hand).Hassert("addGood1()")
- }
- // Вместо обработчика пустышка.
- func (sf *tester) addBad1() {
- sf.t.Log("addBad1()")
- res := sf.dict.Register(nil)
- if res.IsOk() {
- sf.t.Fatalf("addBad1(): err==nil")
- }
- }
- // Вызов несуществующего топика.
- func (sf *tester) sendBad1() {
- sf.t.Log("sendBad1")
- res := sf.dict.SendRequest("test_bad_topic", []byte("test"))
- if res.IsOk() {
- sf.t.Fatalf("sendBad1(): err==nil")
- }
- }
- // Создание словаря подписчиков.
- func (sf *tester) new() {
- sf.t.Log("new")
- sf.newGood1()
- }
- func (sf *tester) newGood1() {
- sf.t.Log("newGood1")
- defer func() {
- if _panic := recover(); _panic != nil {
- sf.t.Fatalf("newGood1(): panic=%v", _panic)
- }
- }()
- sf.dict = NewDictServe().Hassert("newGood1()")
- if sf.dict == nil {
- sf.t.Fatalf("newGood1(): DictServe==nil")
- }
- }
|