import 'package:test/test.dart';
|
import 'package:mockito/mockito.dart';
|
import 'package:test/test.dart';
|
import 'package:socketcluster_client/socketcluster_client.dart';
|
import 'dart:async';
|
import '../lib/redux_remote_devtools.dart';
|
|
class SocketFactory {
|
connect(String url) {}
|
}
|
|
class MockFactory extends Mock implements SocketFactory {}
|
|
class MockSocket extends Mock implements Socket {}
|
|
void main() {
|
group('SocketClusterWrapper', () {
|
group('Constructor', () {
|
test('It sets the URL', () {
|
var wrapper = new SocketClusterWrapper('ws://example.com');
|
expect(wrapper.url, 'ws://example.com');
|
});
|
test('Does not attempt to connect', () {
|
var factory = new MockFactory();
|
new SocketClusterWrapper('ws://example.com',
|
socketFactory: factory.connect);
|
verifyNever(factory.connect(captureAny));
|
});
|
});
|
|
group('connect', () {
|
test('It calls connect with the correct URL', () {
|
var factory = new MockFactory();
|
var socket = new SocketClusterWrapper('ws://example.com',
|
socketFactory: factory.connect);
|
socket.connect();
|
verify(factory.connect('ws://example.com'));
|
});
|
});
|
|
group('on', () {
|
test('It passes the args through', () async {
|
var socket = new MockSocket();
|
var wrapper = new SocketClusterWrapper('ws://example.com',
|
socketFactory: (String s) => Future.value(socket));
|
var testFunc = () => 'asf';
|
await wrapper.connect();
|
wrapper.on('testEvent', testFunc);
|
verify(socket.on('testEvent', testFunc));
|
});
|
});
|
|
group('emit', () {
|
test('It passes the args through', () async {
|
var socket = new MockSocket();
|
var wrapper = new SocketClusterWrapper('ws://example.com',
|
socketFactory: (String s) => Future.value(socket));
|
var testFunc = (String s, dynamic err, dynamic data) => 'asf';
|
await wrapper.connect();
|
wrapper.emit('event', 'data', testFunc);
|
verify(socket.emit('event', 'data', testFunc));
|
});
|
});
|
|
group('id', () {
|
test('It passes the args through', () async {
|
var socket = new MockSocket();
|
when(socket.id).thenReturn('TestId');
|
var wrapper = new SocketClusterWrapper('ws://example.com',
|
socketFactory: (String s) => Future.value(socket));
|
var testFunc = (String s, dynamic err, dynamic data) => 'asf';
|
await wrapper.connect();
|
expect(wrapper.id, 'TestId');
|
});
|
});
|
});
|
}
|