refactor: use extension for initial pinball game

pull/20/head
Allison Ryan 4 years ago
parent 9dd3cddaf0
commit 0f01e266e2

@ -8,13 +8,6 @@ import 'package:pinball_theme/pinball_theme.dart';
class PinballGame extends Forge2DGame with FlameBloc { class PinballGame extends Forge2DGame with FlameBloc {
PinballGame({required this.theme}); PinballGame({required this.theme});
PinballGame.initial()
: this(
theme: const PinballTheme(
characterTheme: DashTheme(),
),
);
final PinballTheme theme; final PinballTheme theme;
void spawnBall() { void spawnBall() {

@ -5,11 +5,13 @@ 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();
group('Anchor', () { group('Anchor', () {
final flameTester = FlameTester(PinballGame.initial); final flameTester = FlameTester(PinballGameX.initial);
flameTester.test( flameTester.test(
'loads correctly', 'loads correctly',

@ -13,7 +13,7 @@ void main() {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
group('Ball', () { group('Ball', () {
final flameTester = FlameTester(PinballGame.initial); final flameTester = FlameTester(PinballGameX.initial);
flameTester.test( flameTester.test(
'loads correctly', 'loads correctly',

@ -10,7 +10,7 @@ import '../../helpers/helpers.dart';
void main() { void main() {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
final flameTester = FlameTester(PinballGame.initial); final flameTester = FlameTester(PinballGameX.initial);
group('Plunger', () { group('Plunger', () {
flameTester.test( flameTester.test(

@ -32,7 +32,7 @@ void main() {
}, },
); );
}); });
final flameTester = FlameTester(PinballGame.initial); final flameTester = FlameTester(PinballGameX.initial);
flameTester.test( flameTester.test(
'loads correctly', 'loads correctly',

@ -1,8 +1,4 @@
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart';
import '../helpers/helpers.dart';
void main() { void main() {
group('PinballGame', () { group('PinballGame', () {
@ -10,23 +6,4 @@ void main() {
// [BallScorePointsCallback] once the following issue is resolved: // [BallScorePointsCallback] once the following issue is resolved:
// https://github.com/flame-engine/flame/issues/1416 // https://github.com/flame-engine/flame/issues/1416
}); });
group('PinballGame.initial', () {
final gameBloc = MockGameBloc();
setUp(() {
whenListen(
gameBloc,
const Stream<GameState>.empty(),
initialState: const GameState.initial(),
);
});
flameBlocTester(gameBloc: gameBloc).test(
'has initial theme',
(game) async {
expect(game.theme, PinballGame.initial().theme);
},
);
});
} }

@ -1,12 +1,13 @@
import 'package:flame_test/flame_test.dart'; 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';
import 'package:pinball_theme/pinball_theme.dart';
FlameTester<PinballGame> flameBlocTester({ FlameTester<PinballGame> flameBlocTester({
required GameBloc gameBloc, required GameBloc gameBloc,
}) { }) {
return FlameTester<PinballGame>( return FlameTester<PinballGame>(
PinballGame.initial, PinballGameX.initial,
pumpWidget: (gameWidget, tester) async { pumpWidget: (gameWidget, tester) async {
await tester.pumpWidget( await tester.pumpWidget(
BlocProvider.value( BlocProvider.value(
@ -17,3 +18,11 @@ FlameTester<PinballGame> flameBlocTester({
}, },
); );
} }
extension PinballGameX on PinballGame {
static PinballGame initial() => PinballGame(
theme: const PinballTheme(
characterTheme: DashTheme(),
),
);
}

Loading…
Cancel
Save