test: tested FlutterForestBonusBehavior

pull/303/head
alestiago 3 years ago
parent 46adba5cb5
commit 2f87500996

@ -16,6 +16,7 @@ import '../../../../helpers/helpers.dart';
void main() { void main() {
group('FlutterForestBonusBehavior', () { group('FlutterForestBonusBehavior', () {
late GameBloc gameBloc; late GameBloc gameBloc;
final assets = [Assets.images.dash.animatronic.keyName];
setUp(() { setUp(() {
gameBloc = MockGameBloc(); gameBloc = MockGameBloc();
@ -31,9 +32,14 @@ void main() {
blocBuilder: () => gameBloc, blocBuilder: () => gameBloc,
); );
void _contactedBumper(DashNestBumper bumper) =>
bumper.bloc.onBallContacted();
flameBlocTester.testGameWidget( flameBlocTester.testGameWidget(
'adds GameBonus.dashNest to the game when all bumpers are active', 'adds GameBonus.dashNest to the game '
'when bumpers are activated three times',
setUp: (game, tester) async { setUp: (game, tester) async {
await game.images.loadAll(assets);
final behavior = FlutterForestBonusBehavior(); final behavior = FlutterForestBonusBehavior();
final parent = FlutterForest.test(); final parent = FlutterForest.test();
final bumpers = [ final bumpers = [
@ -41,12 +47,18 @@ void main() {
DashNestBumper.test(bloc: DashNestBumperCubit()), DashNestBumper.test(bloc: DashNestBumperCubit()),
DashNestBumper.test(bloc: DashNestBumperCubit()), DashNestBumper.test(bloc: DashNestBumperCubit()),
]; ];
final animatronic = DashAnimatronic();
final signpost = Signpost.test(bloc: SignpostCubit());
await game.ensureAdd(ZCanvasComponent(children: [parent])); await game.ensureAdd(ZCanvasComponent(children: [parent]));
await parent.ensureAddAll([...bumpers, behavior]); await parent.ensureAddAll([...bumpers, animatronic, signpost]);
await parent.ensureAdd(behavior);
for (final bumper in bumpers) { expect(game.descendants().whereType<DashNestBumper>(), equals(bumpers));
bumper.bloc.onBallContacted(); bumpers.forEach(_contactedBumper);
} await tester.pump();
bumpers.forEach(_contactedBumper);
await tester.pump();
bumpers.forEach(_contactedBumper);
await tester.pump(); await tester.pump();
verify( verify(
@ -56,8 +68,10 @@ void main() {
); );
flameBlocTester.testGameWidget( flameBlocTester.testGameWidget(
'adds a new ball to the game when all bumpers are active', 'adds a new Ball to the game '
'when bumpers are activated three times',
setUp: (game, tester) async { setUp: (game, tester) async {
await game.images.loadAll(assets);
final behavior = FlutterForestBonusBehavior(); final behavior = FlutterForestBonusBehavior();
final parent = FlutterForest.test(); final parent = FlutterForest.test();
final bumpers = [ final bumpers = [
@ -65,18 +79,68 @@ void main() {
DashNestBumper.test(bloc: DashNestBumperCubit()), DashNestBumper.test(bloc: DashNestBumperCubit()),
DashNestBumper.test(bloc: DashNestBumperCubit()), DashNestBumper.test(bloc: DashNestBumperCubit()),
]; ];
final animatronic = DashAnimatronic();
final signpost = Signpost.test(bloc: SignpostCubit());
await game.ensureAdd(ZCanvasComponent(children: [parent])); await game.ensureAdd(ZCanvasComponent(children: [parent]));
await parent.ensureAddAll([...bumpers, animatronic, signpost]);
await parent.ensureAdd(behavior); await parent.ensureAdd(behavior);
for (final bumper in bumpers) { expect(game.descendants().whereType<DashNestBumper>(), equals(bumpers));
bumper.bloc.onBallContacted(); bumpers.forEach(_contactedBumper);
} await tester.pump();
bumpers.forEach(_contactedBumper);
await tester.pump();
bumpers.forEach(_contactedBumper);
await tester.pump();
await game.ready(); await game.ready();
expect(
game.descendants().whereType<Ball>().length,
equals(1),
);
},
);
// expect( flameBlocTester.testGameWidget(
// game.descendants().whereType<Ball>().single, 'progress the signpost '
// isNotNull, 'when bumpers are activated',
// ); setUp: (game, tester) async {
await game.images.loadAll(assets);
final behavior = FlutterForestBonusBehavior();
final parent = FlutterForest.test();
final bumpers = [
DashNestBumper.test(bloc: DashNestBumperCubit()),
DashNestBumper.test(bloc: DashNestBumperCubit()),
DashNestBumper.test(bloc: DashNestBumperCubit()),
];
final animatronic = DashAnimatronic();
final signpost = Signpost.test(bloc: SignpostCubit());
await game.ensureAdd(ZCanvasComponent(children: [parent]));
await parent.ensureAddAll([...bumpers, animatronic, signpost]);
await parent.ensureAdd(behavior);
expect(game.descendants().whereType<DashNestBumper>(), equals(bumpers));
bumpers.forEach(_contactedBumper);
await tester.pump();
expect(
signpost.bloc.state,
equals(SignpostState.active1),
);
bumpers.forEach(_contactedBumper);
await tester.pump();
expect(
signpost.bloc.state,
equals(SignpostState.active2),
);
bumpers.forEach(_contactedBumper);
await tester.pump();
expect(
signpost.bloc.state,
equals(SignpostState.inactive),
);
}, },
); );
}); });

Loading…
Cancel
Save