MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / test_async_request

Function test_async_request

backend/src/lib.rs:1236–1299  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1234
1235 #[tokio::test]
1236 async fn test_async_request() {
1237 let server = MockServer::start();
1238
1239 let c = Client::new(ClientConfig {
1240 sender_id: vec![1, 2, 3],
1241 server: server.url("/"),
1242 async_timeout: Duration::from_secs(1),
1243 ..Default::default()
1244 })
1245 .unwrap();
1246
1247 let mut req = HomeNSReqPayload {
1248 base: BasePayload {
1249 sender_id: vec![1, 2, 3],
1250 receiver_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
1251 message_type: MessageType::HomeNSReq,
1252 transaction_id: 1234,
1253 ..Default::default()
1254 },
1255 dev_eui: vec![8, 7, 6, 5, 4, 3, 2, 1],
1256 };
1257
1258 let ans = HomeNSAnsPayload {
1259 base: BasePayloadResult {
1260 base: BasePayload {
1261 sender_id: vec![1, 2, 3, 4, 5, 6, 7, 8],
1262 receiver_id: vec![1, 2, 3],
1263 message_type: MessageType::HomeNSAns,
1264 transaction_id: 1234,
1265 ..Default::default()
1266 },
1267 result: ResultPayload {
1268 result_code: ResultCode::Success,
1269 description: "".into(),
1270 },
1271 },
1272 h_net_id: vec![3, 2, 1],
1273 };
1274
1275 let mut mock = server.mock(|when, then| {
1276 when.method(POST)
1277 .path("/")
1278 .body(serde_json::to_string(&req).unwrap());
1279 then.status(200);
1280 });
1281
1282 // OK
1283 let (tx, rx) = oneshot::channel();
1284 tx.send(serde_json::to_vec(&ans).unwrap()).unwrap();
1285 let resp = c
1286 .home_ns_req(vec![1, 2, 3, 4, 5, 6, 7, 8], &mut req, Some(rx))
1287 .await
1288 .unwrap();
1289 mock.assert();
1290 mock.delete();
1291 assert_eq!(resp, ans);
1292
1293 // Timeout

Callers

nothing calls this directly

Calls 6

startFunction · 0.85
unwrapMethod · 0.80
statusMethod · 0.80
home_ns_reqMethod · 0.80
intoMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected