refactor: use readBloc and fix tests

pull/375/head
Allison Ryan 3 years ago
parent f21fe41169
commit 14a85252c5

@ -23,8 +23,9 @@ class BallSpawningBehavior extends Component
void onNewState(GameState state) { void onNewState(GameState state) {
final plunger = gameRef.descendants().whereType<Plunger>().single; final plunger = gameRef.descendants().whereType<Plunger>().single;
final canvas = gameRef.descendants().whereType<ZCanvasComponent>().single; final canvas = gameRef.descendants().whereType<ZCanvasComponent>().single;
final characterTheme = final characterTheme = readBloc<CharacterThemeCubit, CharacterThemeState>()
readProvider<CharacterThemeCubit>().state.characterTheme; .state
.characterTheme;
final ball = Ball(assetPath: characterTheme.ball.keyName) final ball = Ball(assetPath: characterTheme.ball.keyName)
..initialPosition = Vector2( ..initialPosition = Vector2(
plunger.body.position.x, plunger.body.position.x,

@ -42,7 +42,9 @@ class FlutterForestBonusBehavior extends Component
if (signpost.bloc.isFullyProgressed()) { if (signpost.bloc.isFullyProgressed()) {
bloc.add(const BonusActivated(GameBonus.dashNest)); bloc.add(const BonusActivated(GameBonus.dashNest));
final characterTheme = final characterTheme =
readProvider<CharacterThemeCubit>().state.characterTheme; readBloc<CharacterThemeCubit, CharacterThemeState>()
.state
.characterTheme;
canvas.add( canvas.add(
Ball(assetPath: characterTheme.ball.keyName) Ball(assetPath: characterTheme.ball.keyName)
..initialPosition = Vector2(29.2, -24.5) ..initialPosition = Vector2(29.2, -24.5)

@ -26,8 +26,9 @@ class GameBlocStatusListener extends Component
readProvider<PinballPlayer>().play(PinballAudio.gameOverVoiceOver); readProvider<PinballPlayer>().play(PinballAudio.gameOverVoiceOver);
gameRef.descendants().whereType<Backbox>().first.requestInitials( gameRef.descendants().whereType<Backbox>().first.requestInitials(
score: state.displayScore, score: state.displayScore,
character: character: readBloc<CharacterThemeCubit, CharacterThemeState>()
readProvider<CharacterThemeCubit>().state.characterTheme, .state
.characterTheme,
); );
break; break;
} }

@ -69,7 +69,6 @@ class PinballGame extends PinballForge2DGame
MultiFlameProvider( MultiFlameProvider(
providers: [ providers: [
FlameProvider<PinballPlayer>.value(_player), FlameProvider<PinballPlayer>.value(_player),
FlameProvider<CharacterThemeCubit>.value(_characterThemeBloc),
FlameProvider<LeaderboardRepository>.value(leaderboardRepository), FlameProvider<LeaderboardRepository>.value(leaderboardRepository),
FlameProvider<AppLocalizations>.value(_l10n), FlameProvider<AppLocalizations>.value(_l10n),
], ],

@ -19,18 +19,20 @@ class _TestGame extends Forge2DGame {
} }
Future<void> pump( Future<void> pump(
Iterable<Component> children, { List<Component> children, {
GameBloc? gameBloc, GameBloc? gameBloc,
}) async { }) async {
await ensureAdd( await ensureAdd(
FlameBlocProvider<GameBloc, GameState>.value( FlameMultiBlocProvider(
value: gameBloc ?? GameBloc(), providers: [
children: [ FlameBlocProvider<GameBloc, GameState>.value(
FlameProvider<CharacterThemeCubit>.value( value: gameBloc ?? GameBloc(),
CharacterThemeCubit(), ),
children: children, FlameBlocProvider<CharacterThemeCubit, CharacterThemeState>.value(
value: CharacterThemeCubit(),
), ),
], ],
children: children,
), ),
); );
} }

@ -27,16 +27,16 @@ class _TestGame extends Forge2DGame {
required GameBloc gameBloc, required GameBloc gameBloc,
}) async { }) async {
await ensureAdd( await ensureAdd(
FlameBlocProvider<GameBloc, GameState>.value( FlameMultiBlocProvider(
value: gameBloc, providers: [
FlameBlocProvider<GameBloc, GameState>.value(value: gameBloc),
FlameBlocProvider<CharacterThemeCubit, CharacterThemeState>.value(
value: CharacterThemeCubit(),
),
],
children: [ children: [
FlameProvider<CharacterThemeCubit>.value( ZCanvasComponent(
CharacterThemeCubit(), children: [child],
children: [
ZCanvasComponent(
children: [child],
),
],
), ),
], ],
), ),

@ -25,18 +25,18 @@ class _TestGame extends Forge2DGame {
PinballPlayer? pinballPlayer, PinballPlayer? pinballPlayer,
}) async { }) async {
return ensureAdd( return ensureAdd(
FlameBlocProvider<GameBloc, GameState>.value( FlameMultiBlocProvider(
value: GameBloc(), providers: [
FlameBlocProvider<GameBloc, GameState>.value(
value: GameBloc(),
),
FlameBlocProvider<CharacterThemeCubit, CharacterThemeState>.value(
value: CharacterThemeCubit(),
),
],
children: [ children: [
MultiFlameProvider( FlameProvider<PinballPlayer>.value(
providers: [ pinballPlayer ?? _MockPinballPlayer(),
FlameProvider<PinballPlayer>.value(
pinballPlayer ?? _MockPinballPlayer(),
),
FlameProvider<CharacterThemeCubit>.value(
CharacterThemeCubit(),
),
],
children: children, children: children,
), ),
], ],

@ -20,7 +20,7 @@ import 'package:pinball_components/pinball_components.dart';
class _TestPinballGame extends PinballGame { class _TestPinballGame extends PinballGame {
_TestPinballGame() _TestPinballGame()
: super( : super(
characterThemeBloc: _MockCharacterThemeCubit(), characterThemeBloc: CharacterThemeCubit(),
leaderboardRepository: _MockLeaderboardRepository(), leaderboardRepository: _MockLeaderboardRepository(),
gameBloc: GameBloc(), gameBloc: GameBloc(),
l10n: _MockAppLocalizations(), l10n: _MockAppLocalizations(),
@ -39,7 +39,7 @@ class _TestPinballGame extends PinballGame {
class _TestDebugPinballGame extends DebugPinballGame { class _TestDebugPinballGame extends DebugPinballGame {
_TestDebugPinballGame() _TestDebugPinballGame()
: super( : super(
characterThemeBloc: _MockCharacterThemeCubit(), characterThemeBloc: CharacterThemeCubit(),
leaderboardRepository: _MockLeaderboardRepository(), leaderboardRepository: _MockLeaderboardRepository(),
gameBloc: GameBloc(), gameBloc: GameBloc(),
l10n: _MockAppLocalizations(), l10n: _MockAppLocalizations(),
@ -57,12 +57,6 @@ class _TestDebugPinballGame extends DebugPinballGame {
class _MockGameBloc extends Mock implements GameBloc {} class _MockGameBloc extends Mock implements GameBloc {}
class _MockCharacterThemeCubit extends Mock implements CharacterThemeCubit {
@override
Stream<CharacterThemeState> get stream =>
const Stream<CharacterThemeState>.empty();
}
class _MockAppLocalizations extends Mock implements AppLocalizations {} class _MockAppLocalizations extends Mock implements AppLocalizations {}
class _MockEventPosition extends Mock implements EventPosition {} class _MockEventPosition extends Mock implements EventPosition {}

@ -22,7 +22,7 @@ import '../../helpers/helpers.dart';
class _TestPinballGame extends PinballGame { class _TestPinballGame extends PinballGame {
_TestPinballGame() _TestPinballGame()
: super( : super(
characterThemeBloc: _MockCharacterThemeCubit(), characterThemeBloc: CharacterThemeCubit(),
leaderboardRepository: _MockLeaderboardRepository(), leaderboardRepository: _MockLeaderboardRepository(),
gameBloc: GameBloc(), gameBloc: GameBloc(),
l10n: _MockAppLocalizations(), l10n: _MockAppLocalizations(),

Loading…
Cancel
Save