|
|
|
@ -1,8 +1,11 @@
|
|
|
|
|
// ignore_for_file: cascade_invocations
|
|
|
|
|
|
|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
import 'package:bloc_test/bloc_test.dart';
|
|
|
|
|
import 'package:flame_test/flame_test.dart';
|
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
|
import 'package:mocktail/mocktail.dart';
|
|
|
|
|
import 'package:pinball/game/components/multiballs/behaviors/behaviors.dart';
|
|
|
|
|
import 'package:pinball/game/game.dart';
|
|
|
|
|
import 'package:pinball_components/pinball_components.dart';
|
|
|
|
@ -33,5 +36,25 @@ void main() {
|
|
|
|
|
blocBuilder: () => gameBloc,
|
|
|
|
|
assets: assets,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
flameBlocTester.testGameWidget(
|
|
|
|
|
'adds a new ball to the game when all bumpers are active',
|
|
|
|
|
setUp: (game, tester) async {
|
|
|
|
|
final behavior = MultiballsBehavior();
|
|
|
|
|
final parent = Multiballs.test();
|
|
|
|
|
final multiballs = [
|
|
|
|
|
Multiball.test(bloc: MockMultiballCubit()),
|
|
|
|
|
Multiball.test(bloc: MockMultiballCubit()),
|
|
|
|
|
Multiball.test(bloc: MockMultiballCubit()),
|
|
|
|
|
];
|
|
|
|
|
await parent.addAll(multiballs);
|
|
|
|
|
await game.ensureAdd(parent);
|
|
|
|
|
await parent.ensureAdd(behavior);
|
|
|
|
|
|
|
|
|
|
for (final multiball in multiballs) {
|
|
|
|
|
verify(() => multiball.bloc.onAnimate()).called(1);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|