test: fix contact callback tests

pull/194/head
Allison Ryan 3 years ago
parent 7bbc46acd9
commit bcc3f9b1f3

@ -106,6 +106,6 @@ class SparkyComputerSensorBallContactCallback
@override @override
void begin(_, ControlledBall controlledBall, __) { void begin(_, ControlledBall controlledBall, __) {
controlledBall.controller.turboCharge(); controlledBall.controller.turboCharge();
// ball.gameRef.firstChild<SparkyAnimatronic>()?.playing = true; controlledBall.gameRef.firstChild<SparkyAnimatronic>()?.playing = true;
} }
} }

@ -81,6 +81,8 @@ extension PinballGameAssetsX on PinballGame {
images.load(components.Assets.images.chromeDino.mouth.keyName), images.load(components.Assets.images.chromeDino.mouth.keyName),
images.load(components.Assets.images.chromeDino.head.keyName), images.load(components.Assets.images.chromeDino.head.keyName),
images.load(components.Assets.images.sparky.computer.top.keyName), images.load(components.Assets.images.sparky.computer.top.keyName),
images.load(components.Assets.images.sparky.computer.base.keyName),
images.load(components.Assets.images.sparky.animatronic.keyName),
images.load(components.Assets.images.sparky.bumper.a.inactive.keyName), images.load(components.Assets.images.sparky.bumper.a.inactive.keyName),
images.load(components.Assets.images.sparky.bumper.b.active.keyName), images.load(components.Assets.images.sparky.bumper.b.active.keyName),
images.load(components.Assets.images.sparky.bumper.b.inactive.keyName), images.load(components.Assets.images.sparky.bumper.b.inactive.keyName),

@ -17,7 +17,7 @@ class SparkyAnimatronic extends SpriteAnimationComponent with HasGameRef {
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
final spriteSheet = await gameRef.images.load( final spriteSheet = gameRef.images.fromCache(
Assets.images.sparky.animatronic.keyName, Assets.images.sparky.animatronic.keyName,
); );

@ -21,6 +21,7 @@ void main() {
Assets.images.sparky.bumper.b.inactive.keyName, Assets.images.sparky.bumper.b.inactive.keyName,
Assets.images.sparky.bumper.c.active.keyName, Assets.images.sparky.bumper.c.active.keyName,
Assets.images.sparky.bumper.c.inactive.keyName, Assets.images.sparky.bumper.c.inactive.keyName,
Assets.images.sparky.animatronic.keyName,
]; ];
final flameTester = FlameTester(() => EmptyPinballTestGame(assets)); final flameTester = FlameTester(() => EmptyPinballTestGame(assets));
@ -128,36 +129,39 @@ void main() {
}); });
}); });
group( group('SparkyTurboChargeSensorBallContactCallback', () {
'SparkyTurboChargeSensorBallContactCallback',
() {
// TODO(alestiago): Make tests pass.
flameTester.test('calls turboCharge', (game) async { flameTester.test('calls turboCharge', (game) async {
final callback = SparkyComputerSensorBallContactCallback(); final callback = SparkyComputerSensorBallContactCallback();
final ball = MockControlledBall(); final ball = MockControlledBall();
when(() => ball.controller).thenReturn(MockBallController()); final controller = MockBallController();
when(() => ball.controller).thenReturn(controller);
when(() => ball.gameRef).thenReturn(game); when(() => ball.gameRef).thenReturn(game);
when(controller.turboCharge).thenAnswer((_) async {});
await game.ready();
callback.begin(MockSparkyComputerSensor(), ball, MockContact()); callback.begin(MockSparkyComputerSensor(), ball, MockContact());
verify(() => ball.controller.turboCharge()).called(1); verify(() => ball.controller.turboCharge()).called(1);
}); });
flameTester.test('plays DashAnimatronic', (game) async { flameTester.test('plays SparkyAnimatronic', (game) async {
final callback = SparkyComputerSensorBallContactCallback(); final callback = SparkyComputerSensorBallContactCallback();
final ball = MockControlledBall(); final ball = MockControlledBall();
final controller = MockBallController();
when(() => ball.controller).thenReturn(controller);
when(() => ball.gameRef).thenReturn(game); when(() => ball.gameRef).thenReturn(game);
when(() => ball.controller).thenReturn(MockBallController()); when(controller.turboCharge).thenAnswer((_) async {});
final dashAnimatronic = DashAnimatronic();
await game.ensureAdd(dashAnimatronic);
expect(dashAnimatronic.playing, isFalse); final sparkyFireZone = SparkyFireZone();
callback.begin(MockSparkyComputerSensor(), ball, MockContact()); await game.addFromBlueprint(sparkyFireZone);
await game.ready(); await game.ready();
expect(dashAnimatronic.playing, isTrue); final sparkyAnimatronic =
game.descendants().whereType<SparkyAnimatronic>().single;
expect(sparkyAnimatronic.playing, isFalse);
callback.begin(MockSparkyComputerSensor(), ball, MockContact());
expect(sparkyAnimatronic.playing, isTrue);
});
}); });
},
);
} }

@ -33,6 +33,7 @@ void main() {
Assets.images.sparky.bumper.b.inactive.keyName, Assets.images.sparky.bumper.b.inactive.keyName,
Assets.images.sparky.bumper.c.active.keyName, Assets.images.sparky.bumper.c.active.keyName,
Assets.images.sparky.bumper.c.inactive.keyName, Assets.images.sparky.bumper.c.inactive.keyName,
Assets.images.sparky.animatronic.keyName,
Assets.images.spaceship.ramp.boardOpening.keyName, Assets.images.spaceship.ramp.boardOpening.keyName,
Assets.images.spaceship.ramp.railingForeground.keyName, Assets.images.spaceship.ramp.railingForeground.keyName,
Assets.images.spaceship.ramp.railingBackground.keyName, Assets.images.spaceship.ramp.railingBackground.keyName,

Loading…
Cancel
Save