()
| 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()); |
nothing calls this directly
no test coverage detected