MCPcopy
hub / github.com/nats-io/nats.go / TestControlSubject

Function TestControlSubject

micro/test/service_test.go:1447–1505  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1445}
1446
1447func TestControlSubject(t *testing.T) {
1448 tests := []struct {
1449 name string
1450 verb micro.Verb
1451 srvName string
1452 id string
1453 expectedSubject string
1454 withError error
1455 }{
1456 {
1457 name: "PING ALL",
1458 verb: micro.PingVerb,
1459 expectedSubject: "$SRV.PING",
1460 },
1461 {
1462 name: "PING name",
1463 verb: micro.PingVerb,
1464 srvName: "test",
1465 expectedSubject: "$SRV.PING.test",
1466 },
1467 {
1468 name: "PING id",
1469 verb: micro.PingVerb,
1470 srvName: "test",
1471 id: "123",
1472 expectedSubject: "$SRV.PING.test.123",
1473 },
1474 {
1475 name: "invalid verb",
1476 verb: micro.Verb(100),
1477 withError: micro.ErrVerbNotSupported,
1478 },
1479 {
1480 name: "name not provided",
1481 verb: micro.PingVerb,
1482 srvName: "",
1483 id: "123",
1484 withError: micro.ErrServiceNameRequired,
1485 },
1486 }
1487
1488 for _, test := range tests {
1489 t.Run(test.name, func(t *testing.T) {
1490 res, err := micro.ControlSubject(test.verb, test.srvName, test.id)
1491 if test.withError != nil {
1492 if !errors.Is(err, test.withError) {
1493 t.Fatalf("Expected error: %v; got: %v", test.withError, err)
1494 }
1495 return
1496 }
1497 if err != nil {
1498 t.Errorf("Unexpected error: %v", err)
1499 }
1500 if res != test.expectedSubject {
1501 t.Errorf("Invalid subject; want: %q; got: %q", test.expectedSubject, res)
1502 }
1503 })
1504 }

Callers

nothing calls this directly

Calls 5

VerbTypeAlias · 0.92
ControlSubjectFunction · 0.92
FatalfMethod · 0.80
ErrorfMethod · 0.80
IsMethod · 0.45

Tested by

no test coverage detected