MCPcopy Create free account
hub / github.com/CPChain/chain / TestServiceRetrieval

Function TestServiceRetrieval

node/node_test.go:397–430  ·  view source on GitHub ↗

TestServiceRetrieval tests that individual services can be retrieved.

(t *testing.T)

Source from the content-addressed store, hash-verified

395
396// TestServiceRetrieval tests that individual services can be retrieved.
397func TestServiceRetrieval(t *testing.T) {
398 // Create a simple stack and register two service types
399 stack, err := New(testNodeConfig())
400 if err != nil {
401 t.Fatalf("failed to create protocol stack: %v", err)
402 }
403 if err := stack.Register(NewNoopService); err != nil {
404 t.Fatalf("noop service registration failed: %v", err)
405 }
406 if err := stack.Register(NewInstrumentedService); err != nil {
407 t.Fatalf("instrumented service registration failed: %v", err)
408 }
409 // Make sure none of the services can be retrieved until started
410 var noopServ *NoopService
411 if err := stack.Service(&noopServ); err != ErrNodeStopped {
412 t.Fatalf("noop service retrieval mismatch: have %v, want %v", err, ErrNodeStopped)
413 }
414 var instServ *InstrumentedService
415 if err := stack.Service(&instServ); err != ErrNodeStopped {
416 t.Fatalf("instrumented service retrieval mismatch: have %v, want %v", err, ErrNodeStopped)
417 }
418 // Start the stack and ensure everything is retrievable now
419 if err := stack.Start(); err != nil {
420 t.Fatalf("failed to start stack: %v", err)
421 }
422 defer stack.Stop()
423
424 if err := stack.Service(&noopServ); err != nil {
425 t.Fatalf("noop service retrieval mismatch: have %v, want %v", err, nil)
426 }
427 if err := stack.Service(&instServ); err != nil {
428 t.Fatalf("instrumented service retrieval mismatch: have %v, want %v", err, nil)
429 }
430}
431
432// Tests that all protocols defined by individual services get launched.
433func TestProtocolGather(t *testing.T) {

Callers

nothing calls this directly

Calls 6

testNodeConfigFunction · 0.85
NewFunction · 0.70
StartMethod · 0.65
StopMethod · 0.65
RegisterMethod · 0.45
ServiceMethod · 0.45

Tested by

no test coverage detected