add timer_helper_test.dart
Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
import 'package:stream_chat/src/ws/timer_helper.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
late TimerHelper timerHelper;
|
||||
|
||||
setUp(() {
|
||||
timerHelper = TimerHelper();
|
||||
});
|
||||
|
||||
tearDown(() {
|
||||
timerHelper.cancelAllTimers();
|
||||
});
|
||||
|
||||
test('setTimer', () async {
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
|
||||
var count = 0;
|
||||
void callback() => count += 1;
|
||||
|
||||
timerHelper.setTimer(
|
||||
const Duration(milliseconds: 500),
|
||||
callback,
|
||||
);
|
||||
|
||||
expect(count, 0);
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
expect(count, 1);
|
||||
|
||||
expect(timerHelper.hasTimers, isTrue);
|
||||
});
|
||||
|
||||
test('setImmediateTimer', () async {
|
||||
var count = 0;
|
||||
void callback() => count += 1;
|
||||
|
||||
timerHelper.setTimer(
|
||||
const Duration(milliseconds: 500),
|
||||
callback,
|
||||
immediate: true,
|
||||
);
|
||||
|
||||
expect(count, 1);
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
expect(count, 2);
|
||||
});
|
||||
|
||||
test('setPeriodicTimer', () async {
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
var count = 0;
|
||||
void callback() => count += 1;
|
||||
|
||||
timerHelper.setTimer(
|
||||
const Duration(milliseconds: 500),
|
||||
callback,
|
||||
);
|
||||
|
||||
expect(count, 0);
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
expect(count, 1);
|
||||
|
||||
expect(timerHelper.hasTimers, isTrue);
|
||||
});
|
||||
|
||||
test('setImmediatePeriodicTimer', () async {
|
||||
var count = 0;
|
||||
void callback(_) => count += 1;
|
||||
|
||||
timerHelper.setPeriodicTimer(
|
||||
const Duration(milliseconds: 500),
|
||||
callback,
|
||||
immediate: true,
|
||||
);
|
||||
|
||||
expect(count, 1);
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
expect(count, 2);
|
||||
});
|
||||
|
||||
test('cancelTimer', () {
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
final id = timerHelper.setTimer(const Duration(seconds: 3), () {});
|
||||
expect(timerHelper.hasTimers, isTrue);
|
||||
timerHelper.cancelTimer(id);
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
});
|
||||
|
||||
test('cancelAllTimers', () {
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
timerHelper
|
||||
..setTimer(const Duration(seconds: 3), () {})
|
||||
..setTimer(const Duration(seconds: 6), () {})
|
||||
..setTimer(const Duration(seconds: 9), () {});
|
||||
expect(timerHelper.hasTimers, isTrue);
|
||||
timerHelper.cancelAllTimers();
|
||||
expect(timerHelper.hasTimers, isFalse);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user