Skip to content

Commit

Permalink
Add stomp_config_test
Browse files Browse the repository at this point in the history
  • Loading branch information
MacDeveloper1 committed Feb 15, 2024
1 parent 586c48b commit a605ff1
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions test/stomp_config_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import 'dart:async';

import 'package:test/test.dart';
import 'package:web_socket_channel/web_socket_channel.dart';

import 'package:stomp_dart_client/stomp_config.dart';
import 'package:stomp_dart_client/src/_connect_api.dart'
if (dart.library.html) '../lib/src/_connect_html.dart'
if (dart.library.io) '../lib/src/_connect_io.dart' as platform;

void main() {
group('StompConfig', () {
test('Generate session URL once per connection', () async {
final config = StompConfig.sockJS(
url: 'http://localhost',
reconnectDelay: Duration(milliseconds: 500),
);

final connectUrls = <String, String>{};

void connect() async {
try {
await platform.connect(config..resetSession());
} on WebSocketChannelException catch (_) {
// Save subsequent calls of `connectUrl`.
connectUrls.addAll({config.connectUrl: config.connectUrl});
if (connectUrls.length == 1) {
// On 1st connect we expect that the current stored values are equal
expect(connectUrls.entries.first.key,
equals(connectUrls.entries.first.value));
} else if (connectUrls.length == 2) {
// On 2nd connect we expect that the current stored values are equal
expect(connectUrls.entries.last.key,
equals(connectUrls.entries.last.value));
// But they are different from the values saved on 1st connect
expect(connectUrls.entries.first.key,
isNot(equals(connectUrls.entries.last.key)));
expect(connectUrls.entries.first.value,
isNot(equals(connectUrls.entries.last.value)));
}
Timer(config.reconnectDelay, connect);
}
}

connect();

// Wait until exit
await Future.delayed(Duration(seconds: 3));
});
});
}

0 comments on commit a605ff1

Please sign in to comment.