From 9b7302ab2de2ae5ee346b2a93e283bc85d4f9842 Mon Sep 17 00:00:00 2001 From: alestiago Date: Wed, 2 Mar 2022 18:48:44 +0000 Subject: [PATCH] feat: rewrote test for mixin only extending BodyComponent --- test/game/components/score_points_test.dart | 27 +++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/test/game/components/score_points_test.dart b/test/game/components/score_points_test.dart index efbb2a2f..683a33c3 100644 --- a/test/game/components/score_points_test.dart +++ b/test/game/components/score_points_test.dart @@ -3,8 +3,6 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; import 'package:pinball/game/game.dart'; -class MockScorePoints extends Mock with ScorePoints {} - class MockBall extends Mock implements Ball {} class MockGameBloc extends Mock implements GameBloc {} @@ -15,18 +13,28 @@ class FakeContact extends Fake implements Contact {} class FakeGameEvent extends Fake implements GameEvent {} +class FakeScorePoints extends BodyComponent with ScorePoints { + @override + Body createBody() { + throw UnimplementedError(); + } + + @override + int get points => 2; +} + void main() { group('BallScorePointsCallback', () { late MockPinballGame game; late MockGameBloc bloc; late MockBall ball; - late MockScorePoints scorePoints; + late FakeScorePoints fakeScorePoints; setUp(() { game = MockPinballGame(); bloc = MockGameBloc(); ball = MockBall(); - scorePoints = MockScorePoints(); + fakeScorePoints = FakeScorePoints(); }); setUpAll(() { @@ -37,20 +45,19 @@ void main() { test( 'emits Scored event with points', () { - const points = 2; - when(() => ball.gameRef).thenReturn(game); when(game.read).thenReturn(bloc); - when(() => scorePoints.points).thenReturn(points); BallScorePointsCallback().begin( ball, - scorePoints, + fakeScorePoints, FakeContact(), ); verify( - () => bloc.add(const Scored(points: points)), + () => bloc.add( + Scored(points: fakeScorePoints.points), + ), ).called(1); }, ); @@ -60,7 +67,7 @@ void main() { test("doesn't add events to GameBloc", () { BallScorePointsCallback().end( ball, - scorePoints, + fakeScorePoints, FakeContact(), );