WebSocketClient.test constructor

WebSocketClient.test({
  1. required String url,
  2. required CRDTDocument document,
  3. required PeerId author,
  4. required Transport transportFactory(),
  5. Compressor? compressor,
  6. MessageCodec<Message>? messageCodec,
  7. List<ClientSyncPlugin>? plugins,
})

Constructor for testing

Implementation

WebSocketClient.test({
  required this.url,
  required this.document,
  required this.author,
  required Transport Function() transportFactory,
  Compressor? compressor,
  MessageCodec<Message>? messageCodec,
  super.plugins,
})  : _messageController = StreamController<Message>.broadcast(),
      _connectionStatusController =
          StreamController<ConnectionStatus>.broadcast()
            ..add(ConnectionStatus.disconnected),
      _connectionStatusValue = ConnectionStatus.disconnected,
      _transportFactory = transportFactory {
  _syncManager = SyncManager(document: document, client: this);
  _messageCodec = CompressedCodec<Message>(
    PluginAwareMessageCodec.fromPlugins(
      plugins: plugins,
      defaultCodec: messageCodec ??
          JsonMessageCodec<Message>(
            toJson: (message) => message.toJson(),
            fromJson: Message.fromJson,
          ),
    ),
    compressor: compressor ?? NoCompression.instance,
  );

  messages.listen(_handleMessage);
}