MCPcopy
hub / github.com/baetyl/baetyl / TestHandlerDownsideAgent

Function TestHandlerDownsideAgent

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

Source from the content-addressed store, hash-verified

442}
443
444func TestHandlerDownsideAgent(t *testing.T) {
445 e, _, ctl := genHandlerDownsideEngine(t)
446 h := &handlerDownside{engineImpl: e}
447
448 agentClient := mock.NewMockAgentClient(ctl)
449 h.agentClient = agentClient
450
451 // test
452 ch, err := e.pb.Subscribe(sync.TopicUpside)
453 assert.NoError(t, err)
454 assert.NotNil(t, ch)
455
456 handler := &msgRPCUpside{t: t}
457 pro := pubsub.NewProcessor(ch, 0, handler)
458 pro.Start()
459
460 // req0 set success
461 engMsgWG.Add(1)
462 req0 := &specV1.Message{
463 Kind: specV1.MessageCMD,
464 Metadata: map[string]string{
465 "cmd": specV1.MessageAgent,
466 "action": "open",
467 },
468 Content: specV1.LazyValue{},
469 }
470 agentClient.EXPECT().GetOrSetAgentFlag("open").Return(true, nil)
471 handler.check = func(msg interface{}) {
472 m, ok := msg.(*specV1.Message)
473 assert.True(t, ok)
474 assert.Equal(t, "true", m.Metadata["success"])
475 engMsgWG.Done()
476 }
477 err = h.OnMessage(req0)
478 assert.NoError(t, err)
479 engMsgWG.Wait()
480
481 // req1 set fail
482 engMsgWG.Add(1)
483 req1 := &specV1.Message{
484 Kind: specV1.MessageCMD,
485 Metadata: map[string]string{
486 "cmd": specV1.MessageAgent,
487 "action": "close",
488 },
489 Content: specV1.LazyValue{},
490 }
491 agentClient.EXPECT().GetOrSetAgentFlag("close").Return(false, errors.New("timeout"))
492 handler.check = func(msg interface{}) {
493 m, ok := msg.(*specV1.Message)
494 assert.True(t, ok)
495 assert.Equal(t, "false", m.Metadata["success"])
496 engMsgWG.Done()
497 }
498 err = h.OnMessage(req1)
499 assert.NotNil(t, err)
500 engMsgWG.Wait()
501

Callers

nothing calls this directly

Calls 7

EXPECTMethod · 0.95
OnMessageMethod · 0.95
NewMockAgentClientFunction · 0.92
genHandlerDownsideEngineFunction · 0.85
StartMethod · 0.65
GetOrSetAgentFlagMethod · 0.65
SubscribeMethod · 0.45

Tested by

no test coverage detected