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

Function TestRequestRespond

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

Source from the content-addressed store, hash-verified

1222}
1223
1224func TestRequestRespond(t *testing.T) {
1225 type x struct {
1226 A string `json:"a"`
1227 B int `json:"b"`
1228 }
1229
1230 tests := []struct {
1231 name string
1232 respondData any
1233 respondHeaders micro.Headers
1234 errDescription string
1235 errCode string
1236 errData []byte
1237 expectedMessage string
1238 expectedCode string
1239 expectedResponse []byte
1240 withRespondError error
1241 }{
1242 {
1243 name: "byte response",
1244 respondData: []byte("OK"),
1245 expectedResponse: []byte("OK"),
1246 },
1247 {
1248 name: "byte response, with headers",
1249 respondHeaders: micro.Headers{"key": []string{"value"}},
1250 respondData: []byte("OK"),
1251 expectedResponse: []byte("OK"),
1252 },
1253 {
1254 name: "byte response, connection closed",
1255 respondData: []byte("OK"),
1256 withRespondError: micro.ErrRespond,
1257 },
1258 {
1259 name: "struct response",
1260 respondData: x{"abc", 5},
1261 expectedResponse: []byte(`{"a":"abc","b":5}`),
1262 },
1263 {
1264 name: "invalid response data",
1265 respondData: func() {},
1266 withRespondError: micro.ErrMarshalResponse,
1267 },
1268 {
1269 name: "generic error",
1270 errDescription: "oops",
1271 errCode: "500",
1272 errData: []byte("error!"),
1273 expectedMessage: "oops",
1274 expectedCode: "500",
1275 },
1276 {
1277 name: "generic error, with headers",
1278 respondHeaders: micro.Headers{"key": []string{"value"}},
1279 errDescription: "oops",
1280 errCode: "500",
1281 errData: []byte("error!"),

Callers

nothing calls this directly

Calls 15

WithHeadersFunction · 0.92
AddServiceFunction · 0.92
HandlerFuncFuncType · 0.92
HeadersTypeAlias · 0.92
ConnectMethod · 0.80
FatalfMethod · 0.80
EqualMethod · 0.80
RequestMsgMethod · 0.80
RunServerOnPortFunction · 0.70
GetMethod · 0.65
HeadersMethod · 0.65
DataMethod · 0.65

Tested by

no test coverage detected