test: provide mock game bloc

pull/10/head
Allison Ryan 2 years ago
parent bb1663111f
commit 3ef9cb878b

@ -1,11 +1,13 @@
// ignore_for_file: cascade_invocations // 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_forge2d/flame_forge2d.dart';
import 'package:flame_test/flame_test.dart'; import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart'; import 'package:pinball/game/game.dart';
import '../../helpers/helpers.dart';
void main() { void main() {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
final flameTester = FlameTester(PinballGame.new); final flameTester = FlameTester(PinballGame.new);
@ -124,14 +126,27 @@ void main() {
}); });
group('PlungerAnchorPrismaticJointDef', () { group('PlungerAnchorPrismaticJointDef', () {
late GameBloc gameBloc;
late Plunger plunger; late Plunger plunger;
late Anchor anchor; late Anchor anchor;
setUp(() { setUp(() {
gameBloc = MockGameBloc();
whenListen(
gameBloc,
const Stream<GameState>.empty(),
initialState: const GameState.initial(),
);
plunger = Plunger(position: Vector2.zero()); plunger = Plunger(position: Vector2.zero());
anchor = Anchor(position: Vector2(0, -1)); anchor = Anchor(position: Vector2(0, -1));
}); });
final flameTester = flameBlocTester(
gameBlocBuilder: () {
return gameBloc;
},
);
flameTester.test( flameTester.test(
'throws AssertionError ' 'throws AssertionError '
'when anchor is above plunger', 'when anchor is above plunger',
@ -230,6 +245,9 @@ void main() {
(game, tester) async { (game, tester) async {
await game.ensureAddAll([plunger, anchor]); 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( final jointDef = PlungerAnchorPrismaticJointDef(
plunger: plunger, plunger: plunger,
anchor: anchor, anchor: anchor,

@ -2,8 +2,10 @@ import 'package:flame_test/flame_test.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:pinball/game/game.dart'; import 'package:pinball/game/game.dart';
FlameTester flameBlocTester({required GameBloc Function() gameBlocBuilder}) { FlameTester<PinballGame> flameBlocTester({
return FlameTester( required GameBloc Function() gameBlocBuilder,
}) {
return FlameTester<PinballGame>(
PinballGame.new, PinballGame.new,
pumpWidget: (gameWidget, tester) async { pumpWidget: (gameWidget, tester) async {
await tester.pumpWidget( await tester.pumpWidget(

Loading…
Cancel
Save