39 lines
1.3 KiB
Dart
39 lines
1.3 KiB
Dart
import 'package:flame_lua_runtime/runtime/lifecycle/runtime_session.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
group('RuntimeSession', () {
|
|
test('moves through loading, active, disposing and disposed states', () {
|
|
final session = RuntimeSession(gameId: 'game');
|
|
|
|
expect(session.state, RuntimeSessionState.created);
|
|
expect(session.acceptsWork, isTrue);
|
|
expect(session.isActive, isFalse);
|
|
|
|
session.beginLoading();
|
|
expect(session.state, RuntimeSessionState.loading);
|
|
expect(session.acceptsWorkFor(session.id), isTrue);
|
|
expect(session.accepts(session.id), isFalse);
|
|
|
|
session.activate();
|
|
expect(session.state, RuntimeSessionState.active);
|
|
expect(session.accepts(session.id), isTrue);
|
|
|
|
session.beginDisposing();
|
|
expect(session.state, RuntimeSessionState.disposing);
|
|
expect(session.acceptsWork, isFalse);
|
|
expect(session.accepts(session.id), isFalse);
|
|
|
|
session.dispose();
|
|
expect(session.state, RuntimeSessionState.disposed);
|
|
expect(session.acceptsWork, isFalse);
|
|
});
|
|
|
|
test('rejects invalid transitions', () {
|
|
final session = RuntimeSession(gameId: 'game')..activate();
|
|
|
|
expect(session.beginLoading, throwsA(isA<StateError>()));
|
|
});
|
|
});
|
|
}
|