@@ -315,6 +315,60 @@ class QRCodeTest {
315
315
assertEquals(" ABC" , QRCodeOnboardingPayloadParser .extractPayload(" %MT:ABC" ))
316
316
}
317
317
318
+ /*
319
+ * Test Parse QrCode to Expected Payload
320
+ */
321
+ @Test
322
+ fun testParseQrCodeToExpectedPayload () {
323
+ // Payload: MT:W0GU2OTB00KA0648G00
324
+ // Vendor Id: 9050 (0x235A)
325
+ // Product Id: 20043 (0x4E4B)
326
+ // Setup Pin Code: 20202021
327
+ // Setup Discriminator: 3840 (0xF00)
328
+
329
+ val parser = OnboardingPayloadParser ()
330
+ assertThat(parser.parseQrCode(" MT:W0GU2OTB00KA0648G00" ))
331
+ .isEqualTo(
332
+ OnboardingPayload (
333
+ discriminator = 0xF00 ,
334
+ setupPinCode = 20202021 ,
335
+ version = 0 ,
336
+ vendorId = 0x235A ,
337
+ productId = 0x4E4B ,
338
+ commissioningFlow = CommissioningFlow .STANDARD .value,
339
+ discoveryCapabilities = mutableSetOf (DiscoveryCapability .BLE ),
340
+ )
341
+ )
342
+ }
343
+
344
+ /*
345
+ * Test Generate QrCode from Expected Value
346
+ */
347
+ @Test
348
+ fun testGenerateQrCodeFromExpectedValue () {
349
+ // Payload: MT:W0GU2OTB00KA0648G00
350
+ // Vendor Id: 9050 (0x235A)
351
+ // Product Id: 20043 (0x4E4B)
352
+ // Setup Pin Code: 20202021
353
+ // Setup Discriminator: 3840 (0xF00)
354
+
355
+ val parser = OnboardingPayloadParser ()
356
+ assertThat(
357
+ parser.getQrCodeFromPayload(
358
+ OnboardingPayload (
359
+ discriminator = 0xF00 ,
360
+ setupPinCode = 20202021 ,
361
+ version = 0 ,
362
+ vendorId = 0x235A ,
363
+ productId = 0x4E4B ,
364
+ commissioningFlow = CommissioningFlow .STANDARD .value,
365
+ discoveryCapabilities = mutableSetOf (DiscoveryCapability .BLE ),
366
+ )
367
+ )
368
+ )
369
+ .isEqualTo(" MT:W0GU2OTB00KA0648G00" )
370
+ }
371
+
318
372
companion object {
319
373
const val kDefaultPayloadQRCode: String = " MT:M5L90MP500K64J00000"
320
374
}
0 commit comments