MCPcopy
hub / github.com/baetyl/baetyl / TestHandlerDownside

Function TestHandlerDownside

engine/msg_handler_test.go:58–169  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

56}
57
58func TestHandlerDownside(t *testing.T) {
59 e, ami, ctl := genHandlerDownsideEngine(t)
60
61 meta := map[string]string{
62 "namespace": "default",
63 "name": "core",
64 "container": "xxx",
65 "token": "0123456789",
66 "cmd": "connect",
67 }
68
69 h := &handlerDownside{engineImpl: e}
70
71 // test
72 ch, err := e.pb.Subscribe(sync.TopicUpside)
73 assert.NoError(t, err)
74 assert.NotNil(t, ch)
75
76 pro := pubsub.NewProcessor(ch, 0, &msgUpside{t: t, pb: e.pb})
77 pro.Start()
78
79 // msg 0
80 msg0 := &specV1.Message{
81 Kind: specV1.MessageCMD,
82 Metadata: meta,
83 }
84 engMsgWG.Add(1)
85 err = h.OnMessage(msg0)
86 assert.Error(t, err)
87
88 // msg 1
89 msg1 := &specV1.Message{
90 Kind: specV1.MessageData,
91 Metadata: meta,
92 }
93 engMsgWG.Add(1)
94 err = h.OnMessage(msg1)
95 assert.Error(t, err)
96
97 // cmd store msg 2
98 key := fmt.Sprintf("%s_%s_%s_%s", meta["namespace"], meta["name"], meta["container"], meta["token"])
99 mockChain := mock.NewMockChain(ctl)
100 h.chains.Store(key, mockChain)
101 mockChain.EXPECT().Close().Return(nil).Times(1)
102
103 h.cfg.Plugin.Pubsub = "defaultpubsub"
104 msg2 := &specV1.Message{
105 Kind: specV1.MessageCMD,
106 Metadata: meta,
107 }
108
109 ami.EXPECT().RemoteCommand(gomock.Any(), gomock.Any()).Return(nil).Times(1)
110
111 engMsgWG.Add(1)
112 err = h.OnMessage(msg2)
113 assert.NoError(t, err)
114
115 // msg 3

Callers

nothing calls this directly

Calls 10

OnMessageMethod · 0.95
EXPECTMethod · 0.95
OnTimeoutMethod · 0.95
NewMockChainFunction · 0.92
genHandlerDownsideEngineFunction · 0.85
StartMethod · 0.65
CloseMethod · 0.65
RemoteCommandMethod · 0.65
SubscribeMethod · 0.45
EXPECTMethod · 0.45

Tested by

no test coverage detected