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

Function test_handle_uplink

chirpstack/src/maccommand/mod.rs:175–241  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

173
174 #[tokio::test]
175 async fn test_handle_uplink() {
176 let region_conf = lrwn::region::get(lrwn::region::CommonName::EU868, false, false);
177 let region_conf = Arc::new(region_conf);
178
179 let upfs = UplinkFrameSet {
180 uplink_set_id: Uuid::nil(),
181 dr: 0,
182 ch: 0,
183 phy_payload: lrwn::PhyPayload {
184 mhdr: lrwn::MHDR {
185 f_type: lrwn::FType::UnconfirmedDataUp,
186 major: lrwn::Major::LoRaWANR1,
187 },
188 payload: lrwn::Payload::MACPayload(lrwn::MACPayload {
189 fhdr: Default::default(),
190 f_port: None,
191 frm_payload: None,
192 }),
193 mic: Some([0, 0, 0, 0]),
194 },
195 tx_info: Default::default(),
196 rx_info_set: Default::default(),
197 gateway_private_up_map: Default::default(),
198 gateway_private_down_map: Default::default(),
199 gateway_tenant_id_map: Default::default(),
200 gateway_downlink_priority_map: HashMap::new(),
201 region_common_name: lrwn::region::CommonName::EU868,
202 region_config_id: "eu868".into(),
203 roaming_meta_data: None,
204 };
205
206 let t: tenant::Tenant = Default::default();
207 let app: application::Application = Default::default();
208 let dp: device_profile::DeviceProfile = Default::default();
209 let mut dev = device::Device {
210 dev_eui: EUI64::from_be_bytes([1, 2, 3, 4, 5, 6, 7, 8]),
211 device_session: Some(
212 internal::DeviceSession {
213 ..Default::default()
214 }
215 .into(),
216 ),
217 ..Default::default()
218 };
219
220 // must respond
221 let cmds = lrwn::MACCommandSet::new(vec![lrwn::MACCommand::RxTimingSetupAns]);
222
223 let (resp, must_respond) =
224 handle_uplink(&upfs, &cmds, &t, &app, &dp, &mut dev, region_conf.clone())
225 .await
226 .unwrap();
227 assert_eq!(0, resp.len());
228 assert!(must_respond);
229
230 // mac-commands disabled
231 let mut conf = (*config::get()).clone();
232 conf.network.mac_commands_disabled = true;

Callers

nothing calls this directly

Calls 6

MACPayloadClass · 0.85
unwrapMethod · 0.80
handle_uplinkFunction · 0.70
getFunction · 0.50
setFunction · 0.50
intoMethod · 0.45

Tested by

no test coverage detected