diff --git a/test/game/components/sparky_fire_zone_test.dart b/test/game/components/sparky_fire_zone_test.dart new file mode 100644 index 00000000..5188aa59 --- /dev/null +++ b/test/game/components/sparky_fire_zone_test.dart @@ -0,0 +1,32 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:mocktail/mocktail.dart'; +import 'package:pinball/game/game.dart'; +import 'package:pinball_components/pinball_components.dart'; + +import '../../helpers/helpers.dart'; + +void main() { + group('SparkyBumperController', () { + late SparkyBumper sparkyBumper; + + setUp(() { + sparkyBumper = MockSparkyBumper(); + }); + + test('toggle activated state when bumper is hit', () { + final controller = SparkyBumperController(sparkyBumper); + + when(() => sparkyBumper.activate()).thenReturn(null); + when(() => sparkyBumper.deactivate()).thenReturn(null); + + controller + ..hit() + ..hit(); + + verifyInOrder([ + () => sparkyBumper.activate(), + () => sparkyBumper.deactivate(), + ]); + }); + }); +} diff --git a/test/helpers/mocks.dart b/test/helpers/mocks.dart index 748b48f3..b1ef8ebe 100644 --- a/test/helpers/mocks.dart +++ b/test/helpers/mocks.dart @@ -74,3 +74,5 @@ class MockComponentSet extends Mock implements ComponentSet {} class MockDashNestBumper extends Mock implements DashNestBumper {} class MockPinballAudio extends Mock implements PinballAudio {} + +class MockSparkyBumper extends Mock implements SparkyBumper {}