Unterschriftenerfassung dauerhaft auf Deutsch anzeigen, lokale VHS-Buildkonfiguration und Regressionstests ergänzen sowie Version auf 357.0.0+357 anheben.
87 lines
2.8 KiB
Dart
87 lines
2.8 KiB
Dart
import 'package:flat_buffers/flat_buffers.dart' as fb;
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:objectbox/internal.dart' show EntityDefinition;
|
|
import 'package:stadtbote/model/chat_message.dart';
|
|
import 'package:stadtbote/objectbox.g.dart';
|
|
|
|
void main() {
|
|
group('ChatMessage IDs', () {
|
|
test('initialisiert ausgehende Nachrichten vollständig', () {
|
|
final message = _outgoingMessage();
|
|
|
|
expect(message.id, 0);
|
|
expect(message.toJson(), {
|
|
'id': 42,
|
|
'time': 1791366832,
|
|
'from': 'courier-123',
|
|
'subj': '',
|
|
'text': 'Auftrag erledigt',
|
|
'read': true,
|
|
});
|
|
});
|
|
|
|
test('serialisiert ausgehende Nachrichten für ObjectBox ohne Fehler', () {
|
|
final message = _outgoingMessage();
|
|
final definition = getObjectBoxModel().bindings[ChatMessage]!
|
|
as EntityDefinition<ChatMessage>;
|
|
final builder = fb.Builder();
|
|
|
|
expect(definition.objectToFB(message, builder), 0);
|
|
|
|
final buffer = fb.BufferContext.fromBytes(builder.buffer);
|
|
final root = buffer.derefObject(0);
|
|
const intReader = fb.Int64Reader();
|
|
const stringReader = fb.StringReader();
|
|
|
|
expect(intReader.vTableGet(buffer, root, 4, -1), 0);
|
|
expect(intReader.vTableGet(buffer, root, 6, -1), 42);
|
|
expect(intReader.vTableGet(buffer, root, 8, -1), 1791366832);
|
|
expect(stringReader.vTableGet(buffer, root, 10, ''), 'courier-123');
|
|
expect(stringReader.vTableGet(buffer, root, 12, 'missing'), '');
|
|
expect(stringReader.vTableGet(buffer, root, 14, ''), 'Auftrag erledigt');
|
|
expect(const fb.BoolReader().vTableGet(buffer, root, 16, false), isTrue);
|
|
});
|
|
|
|
test('verwendet nach lokaler ID-Vergabe weiterhin die Nachrichten-ID', () {
|
|
final message = _outgoingMessage();
|
|
final definition = getObjectBoxModel().bindings[ChatMessage]!
|
|
as EntityDefinition<ChatMessage>;
|
|
|
|
definition.setId(message, 99);
|
|
|
|
expect(message.id, 99);
|
|
expect(message.externalId, 42);
|
|
expect(message.toJson()['id'], 42);
|
|
});
|
|
|
|
test('übernimmt empfangene Server-IDs getrennt von der lokalen ID', () {
|
|
final message = ChatMessage.fromJson({
|
|
'id': 21891302,
|
|
'time': 1791366832,
|
|
'from': 'Zentrale',
|
|
'subj': 'Rückfrage',
|
|
'text': 'Bitte melden',
|
|
});
|
|
|
|
expect(message.id, 0);
|
|
expect(message.externalId, 21891302);
|
|
expect(message.read, isFalse);
|
|
expect(message.toJson(), {
|
|
'id': 21891302,
|
|
'time': 1791366832,
|
|
'from': 'Zentrale',
|
|
'subj': 'Rückfrage',
|
|
'text': 'Bitte melden',
|
|
'read': false,
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
ChatMessage _outgoingMessage() => ChatMessage.outgoing(
|
|
externalId: 42,
|
|
time: 1791366832,
|
|
from: 'courier-123',
|
|
text: 'Auftrag erledigt',
|
|
);
|