From 3ef9cb878b2966f2ad6c8546bdc6e01d8eb9ac18 Mon Sep 17 00:00:00 2001 From: Allison Ryan Date: Fri, 4 Mar 2022 10:52:23 -0600 Subject: [PATCH] test: provide mock game bloc --- test/game/components/plunger_test.dart | 20 +++++++++++++++++++- test/helpers/builders.dart | 6 ++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/test/game/components/plunger_test.dart b/test/game/components/plunger_test.dart index 913cfa82..5d3c3a55 100644 --- a/test/game/components/plunger_test.dart +++ b/test/game/components/plunger_test.dart @@ -1,11 +1,13 @@ // ignore_for_file: cascade_invocations -import 'package:flame/extensions.dart'; +import 'package:bloc_test/bloc_test.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_test/flame_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball/game/game.dart'; +import '../../helpers/helpers.dart'; + void main() { TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(PinballGame.new); @@ -124,14 +126,27 @@ void main() { }); group('PlungerAnchorPrismaticJointDef', () { + late GameBloc gameBloc; late Plunger plunger; late Anchor anchor; setUp(() { + gameBloc = MockGameBloc(); + whenListen( + gameBloc, + const Stream.empty(), + initialState: const GameState.initial(), + ); plunger = Plunger(position: Vector2.zero()); anchor = Anchor(position: Vector2(0, -1)); }); + final flameTester = flameBlocTester( + gameBlocBuilder: () { + return gameBloc; + }, + ); + flameTester.test( 'throws AssertionError ' 'when anchor is above plunger', @@ -230,6 +245,9 @@ void main() { (game, tester) async { await game.ensureAddAll([plunger, anchor]); + // Giving anchor a shape for the plunger to collide with. + anchor.body.createFixtureFromShape(PolygonShape()..setAsBoxXY(2, 1)); + final jointDef = PlungerAnchorPrismaticJointDef( plunger: plunger, anchor: anchor, diff --git a/test/helpers/builders.dart b/test/helpers/builders.dart index 5ef98226..e124052e 100644 --- a/test/helpers/builders.dart +++ b/test/helpers/builders.dart @@ -2,8 +2,10 @@ import 'package:flame_test/flame_test.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/game/game.dart'; -FlameTester flameBlocTester({required GameBloc Function() gameBlocBuilder}) { - return FlameTester( +FlameTester flameBlocTester({ + required GameBloc Function() gameBlocBuilder, +}) { + return FlameTester( PinballGame.new, pumpWidget: (gameWidget, tester) async { await tester.pumpWidget(