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

Function test_queue_item

chirpstack/src/storage/device_queue.rs:206–264  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

204
205 #[tokio::test]
206 async fn test_queue_item() {
207 let _guard = test::prepare().await;
208 let dp = storage::device_profile::test::create_device_profile(None).await;
209 let d = storage::device::test::create_device(
210 EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]),
211 dp.id.into(),
212 None,
213 )
214 .await;
215
216 // invalid fport
217 let qi = DeviceQueueItem {
218 dev_eui: d.dev_eui,
219 f_port: 0,
220 data: vec![0x01, 0x02, 0x03],
221 ..Default::default()
222 };
223 assert!(enqueue_item(qi).await.is_err());
224
225 let qi = DeviceQueueItem {
226 dev_eui: d.dev_eui,
227 f_port: 256,
228 data: vec![0x01, 0x02, 0x03],
229 ..Default::default()
230 };
231 assert!(enqueue_item(qi).await.is_err());
232
233 // create
234 let mut qi = DeviceQueueItem {
235 dev_eui: d.dev_eui,
236 f_port: 10,
237 data: vec![0x01, 0x02, 0x03],
238 ..Default::default()
239 };
240 qi = enqueue_item(qi).await.unwrap();
241
242 // get
243 let qi_get = get_item(&qi.id).await.unwrap();
244 assert_eq!(qi, qi_get);
245
246 // get for dev eui
247 let queue = get_for_dev_eui(&d.dev_eui).await.unwrap();
248 assert_eq!(qi, queue[0]);
249
250 // next next queue item for dev eui
251 let resp = get_next_for_dev_eui(&d.dev_eui).await.unwrap();
252 assert_eq!(qi, resp.0);
253 assert!(!resp.1);
254
255 // update
256 qi.is_pending = true;
257 qi = update_item(qi).await.unwrap();
258 let qi_get = get_item(&qi.id).await.unwrap();
259 assert_eq!(qi, qi_get);
260
261 // delete
262 delete_item(&qi.id).await.unwrap();
263 assert!(delete_item(&qi.id).await.is_err());

Callers

nothing calls this directly

Calls 11

prepareFunction · 0.85
create_device_profileFunction · 0.85
create_deviceFunction · 0.85
enqueue_itemFunction · 0.85
get_itemFunction · 0.85
get_next_for_dev_euiFunction · 0.85
update_itemFunction · 0.85
delete_itemFunction · 0.85
unwrapMethod · 0.80
get_for_dev_euiFunction · 0.70
intoMethod · 0.45

Tested by

no test coverage detected