mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
Add swarm mode transport doc
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:meshcore_sar_app/models/message.dart';
|
||||
import 'package:meshcore_sar_app/providers/helpers/session_metadata_restore.dart';
|
||||
import 'package:meshcore_sar_app/utils/image_message_parser.dart';
|
||||
import 'package:meshcore_sar_app/utils/voice_message_parser.dart';
|
||||
@@ -13,8 +16,6 @@ void main() {
|
||||
mode: VoicePacketMode.mode1200,
|
||||
total: 4,
|
||||
durationMs: 4000,
|
||||
senderKey6: 'AABBCCDDEEFF',
|
||||
timestampSec: 123456,
|
||||
);
|
||||
final imageEnvelope = ImageEnvelope(
|
||||
sessionId: '195cb2fb',
|
||||
@@ -23,24 +24,62 @@ void main() {
|
||||
width: 118,
|
||||
height: 256,
|
||||
sizeBytes: 1069,
|
||||
senderKey6: 'FE8B30EE05FC',
|
||||
timestampSec: 123457,
|
||||
);
|
||||
|
||||
final restored = restoreSessionMetadataFromMessages([
|
||||
'plain text',
|
||||
voiceEnvelope.encodeText(),
|
||||
imageEnvelope.encode(),
|
||||
Message(
|
||||
id: 'plain',
|
||||
messageType: MessageType.channel,
|
||||
channelIdx: 0,
|
||||
pathLen: 0,
|
||||
textType: MessageTextType.plain,
|
||||
senderTimestamp: 1,
|
||||
text: 'plain text',
|
||||
receivedAt: DateTime.now(),
|
||||
deliveryStatus: MessageDeliveryStatus.sent,
|
||||
),
|
||||
Message(
|
||||
id: 'voice',
|
||||
messageType: MessageType.channel,
|
||||
channelIdx: 0,
|
||||
pathLen: 0,
|
||||
textType: MessageTextType.plain,
|
||||
senderTimestamp: 2,
|
||||
text: voiceEnvelope.encodeText(),
|
||||
receivedAt: DateTime.now(),
|
||||
senderPublicKeyPrefix: Uint8List.fromList(
|
||||
[0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff],
|
||||
),
|
||||
deliveryStatus: MessageDeliveryStatus.sent,
|
||||
),
|
||||
Message(
|
||||
id: 'image',
|
||||
messageType: MessageType.channel,
|
||||
channelIdx: 0,
|
||||
pathLen: 0,
|
||||
textType: MessageTextType.plain,
|
||||
senderTimestamp: 3,
|
||||
text: imageEnvelope.encode(),
|
||||
receivedAt: DateTime.now(),
|
||||
senderPublicKeyPrefix: Uint8List.fromList(
|
||||
[0xfe, 0x8b, 0x30, 0xee, 0x05, 0xfc],
|
||||
),
|
||||
deliveryStatus: MessageDeliveryStatus.sent,
|
||||
),
|
||||
]);
|
||||
|
||||
expect(
|
||||
restored.voiceSenderKeyBySession,
|
||||
equals({'00112233': 'aabbccddeeff'}),
|
||||
);
|
||||
expect(
|
||||
restored.imageSenderKeyBySession,
|
||||
equals({'195cb2fb': 'fe8b30ee05fc'}),
|
||||
);
|
||||
expect(restored.imageEnvelopeBySession.keys, equals({'195cb2fb'}));
|
||||
expect(
|
||||
restored.imageEnvelopeBySession['195cb2fb']?.senderKey6,
|
||||
equals('fe8b30ee05fc'),
|
||||
restored.imageEnvelopeBySession['195cb2fb']?.sessionId,
|
||||
equals('195cb2fb'),
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -53,8 +92,6 @@ void main() {
|
||||
width: 100,
|
||||
height: 100,
|
||||
sizeBytes: 900,
|
||||
senderKey6: '001122334455',
|
||||
timestampSec: 100,
|
||||
);
|
||||
final second = ImageEnvelope(
|
||||
sessionId: '195cb2fb',
|
||||
@@ -63,18 +100,40 @@ void main() {
|
||||
width: 118,
|
||||
height: 256,
|
||||
sizeBytes: 1069,
|
||||
senderKey6: 'AABBCCDDEEFF',
|
||||
timestampSec: 101,
|
||||
);
|
||||
|
||||
final restored = restoreSessionMetadataFromMessages([
|
||||
first.encode(),
|
||||
second.encode(),
|
||||
Message(
|
||||
id: 'first',
|
||||
messageType: MessageType.channel,
|
||||
channelIdx: 0,
|
||||
pathLen: 0,
|
||||
textType: MessageTextType.plain,
|
||||
senderTimestamp: 1,
|
||||
text: first.encode(),
|
||||
receivedAt: DateTime.now(),
|
||||
senderPublicKeyPrefix: Uint8List.fromList([0, 1, 2, 3, 4, 5]),
|
||||
deliveryStatus: MessageDeliveryStatus.sent,
|
||||
),
|
||||
Message(
|
||||
id: 'second',
|
||||
messageType: MessageType.channel,
|
||||
channelIdx: 0,
|
||||
pathLen: 0,
|
||||
textType: MessageTextType.plain,
|
||||
senderTimestamp: 2,
|
||||
text: second.encode(),
|
||||
receivedAt: DateTime.now(),
|
||||
senderPublicKeyPrefix: Uint8List.fromList(
|
||||
[0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff],
|
||||
),
|
||||
deliveryStatus: MessageDeliveryStatus.sent,
|
||||
),
|
||||
]);
|
||||
|
||||
expect(restored.imageEnvelopeBySession.length, equals(1));
|
||||
expect(
|
||||
restored.imageEnvelopeBySession['195cb2fb']?.senderKey6,
|
||||
restored.imageSenderKeyBySession['195cb2fb'],
|
||||
equals('aabbccddeeff'),
|
||||
);
|
||||
expect(
|
||||
|
||||
Reference in New Issue
Block a user