66 lines
1.8 KiB
Dart
66 lines
1.8 KiB
Dart
import 'package:flame_lua_runtime/runtime/commands/runtime_command_registry.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
group('RuntimeCommandRegistry', () {
|
|
test('cancels handles by id, group and scope', () {
|
|
final registry = RuntimeCommandRegistry();
|
|
var idCancelled = false;
|
|
var groupCancelled = false;
|
|
var scopeCancelled = false;
|
|
|
|
registry.create(id: 'intro').addCancelCallback(() {
|
|
idCancelled = true;
|
|
});
|
|
registry.create(group: 'scene').addCancelCallback(() {
|
|
groupCancelled = true;
|
|
});
|
|
registry.create(scope: 'panel').addCancelCallback(() {
|
|
scopeCancelled = true;
|
|
});
|
|
|
|
registry
|
|
..cancelId('intro')
|
|
..cancelGroup('scene')
|
|
..cancelScope('panel');
|
|
|
|
expect(idCancelled, isTrue);
|
|
expect(groupCancelled, isTrue);
|
|
expect(scopeCancelled, isTrue);
|
|
expect(registry.activeHandleCount, 0);
|
|
});
|
|
|
|
test('completed handles ignore later cancellation', () {
|
|
final registry = RuntimeCommandRegistry();
|
|
var cancelled = false;
|
|
final handle = registry.create(group: 'scene')
|
|
..addCancelCallback(() {
|
|
cancelled = true;
|
|
});
|
|
|
|
handle.complete();
|
|
registry.cancelGroup('scene');
|
|
|
|
expect(cancelled, isFalse);
|
|
expect(registry.activeHandleCount, 0);
|
|
});
|
|
|
|
test('dispose cancels all handles', () {
|
|
final registry = RuntimeCommandRegistry();
|
|
var cancelCount = 0;
|
|
|
|
registry.create(id: 'a').addCancelCallback(() {
|
|
cancelCount++;
|
|
});
|
|
registry.create(group: 'b').addCancelCallback(() {
|
|
cancelCount++;
|
|
});
|
|
|
|
registry.dispose();
|
|
|
|
expect(cancelCount, 2);
|
|
expect(registry.activeHandleCount, 0);
|
|
});
|
|
});
|
|
}
|