From 59ea135133f2a63147de9b4919009bb8dd75e42b Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Wed, 6 Apr 2022 10:48:57 +0200 Subject: [PATCH] refactor: moved plunger to pinball_components --- lib/game/components/components.dart | 1 - lib/gen/assets.gen.dart | 7 ++-- .../assets/images/plunger}/plunger.png | Bin .../lib/gen/assets.gen.dart | 9 +++++ .../lib/src/components/components.dart | 1 + .../lib/src}/components/plunger.dart | 4 +- packages/pinball_components/pubspec.yaml | 1 + .../test/helpers/helpers.dart | 1 + .../test/helpers/key_testers.dart | 37 ++++++++++++++++++ .../test/helpers/mocks.dart | 16 ++++++++ .../test/src}/components/plunger_test.dart | 2 +- 11 files changed, 71 insertions(+), 8 deletions(-) rename {assets/images/components => packages/pinball_components/assets/images/plunger}/plunger.png (100%) rename {lib/game => packages/pinball_components/lib/src}/components/plunger.dart (97%) create mode 100644 packages/pinball_components/test/helpers/key_testers.dart rename {test/game => packages/pinball_components/test/src}/components/plunger_test.dart (99%) diff --git a/lib/game/components/components.dart b/lib/game/components/components.dart index 61d0f3ca..727b1af8 100644 --- a/lib/game/components/components.dart +++ b/lib/game/components/components.dart @@ -3,6 +3,5 @@ export 'bonus_word.dart'; export 'controlled_ball.dart'; export 'controlled_flipper.dart'; export 'flutter_forest.dart'; -export 'plunger.dart'; export 'score_points.dart'; export 'wall.dart'; diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart index 5c2a87c2..97be7f3e 100644 --- a/lib/gen/assets.gen.dart +++ b/lib/gen/assets.gen.dart @@ -3,6 +3,8 @@ /// FlutterGen /// ***************************************************** +// ignore_for_file: directives_ordering,unnecessary_import + import 'package:flutter/widgets.dart'; class $AssetsImagesGen { @@ -15,12 +17,9 @@ class $AssetsImagesGen { class $AssetsImagesComponentsGen { const $AssetsImagesComponentsGen(); + /// File path: assets/images/components/background.png AssetGenImage get background => const AssetGenImage('assets/images/components/background.png'); - - /// File path: assets/images/components/plunger.png - AssetGenImage get plunger => - const AssetGenImage('assets/images/components/plunger.png'); } class Assets { diff --git a/assets/images/components/plunger.png b/packages/pinball_components/assets/images/plunger/plunger.png similarity index 100% rename from assets/images/components/plunger.png rename to packages/pinball_components/assets/images/plunger/plunger.png diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index 154930bc..d3fb5fe4 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -29,6 +29,7 @@ class $AssetsImagesGen { $AssetsImagesKickerGen get kicker => const $AssetsImagesKickerGen(); $AssetsImagesLaunchRampGen get launchRamp => const $AssetsImagesLaunchRampGen(); + $AssetsImagesPlungerGen get plunger => const $AssetsImagesPlungerGen(); $AssetsImagesSpaceshipGen get spaceship => const $AssetsImagesSpaceshipGen(); } @@ -125,6 +126,14 @@ class $AssetsImagesLaunchRampGen { const AssetGenImage('assets/images/launch_ramp/ramp.png'); } +class $AssetsImagesPlungerGen { + const $AssetsImagesPlungerGen(); + + /// File path: assets/images/plunger/plunger.png + AssetGenImage get plunger => + const AssetGenImage('assets/images/plunger/plunger.png'); +} + class $AssetsImagesSpaceshipGen { const $AssetsImagesSpaceshipGen(); diff --git a/packages/pinball_components/lib/src/components/components.dart b/packages/pinball_components/lib/src/components/components.dart index bf578ea7..ccf86a04 100644 --- a/packages/pinball_components/lib/src/components/components.dart +++ b/packages/pinball_components/lib/src/components/components.dart @@ -14,6 +14,7 @@ export 'joint_anchor.dart'; export 'kicker.dart'; export 'launch_ramp.dart'; export 'layer.dart'; +export 'plunger.dart'; export 'ramp_opening.dart'; export 'shapes/shapes.dart'; export 'spaceship.dart'; diff --git a/lib/game/components/plunger.dart b/packages/pinball_components/lib/src/components/plunger.dart similarity index 97% rename from lib/game/components/plunger.dart rename to packages/pinball_components/lib/src/components/plunger.dart index b319af80..661bb6b5 100644 --- a/lib/game/components/plunger.dart +++ b/packages/pinball_components/lib/src/components/plunger.dart @@ -1,7 +1,7 @@ import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/services.dart'; -import 'package:pinball/gen/assets.gen.dart'; +import 'package:pinball_components/gen/assets.gen.dart'; import 'package:pinball_components/pinball_components.dart' hide Assets; /// {@template plunger} @@ -105,7 +105,7 @@ class Plunger extends BodyComponent with KeyboardHandler, InitialPosition { Future _loadSprite() async { final sprite = await gameRef.loadSprite( - Assets.images.components.plunger.path, + Assets.images.plunger.plunger.keyName, ); await add( diff --git a/packages/pinball_components/pubspec.yaml b/packages/pinball_components/pubspec.yaml index c7302d0d..115ec67d 100644 --- a/packages/pinball_components/pubspec.yaml +++ b/packages/pinball_components/pubspec.yaml @@ -39,6 +39,7 @@ flutter: - assets/images/spaceship/ramp/ - assets/images/chrome_dino/ - assets/images/kicker/ + - assets/images/plunger/ flutter_gen: line_length: 80 diff --git a/packages/pinball_components/test/helpers/helpers.dart b/packages/pinball_components/test/helpers/helpers.dart index 312f42ec..b5326db2 100644 --- a/packages/pinball_components/test/helpers/helpers.dart +++ b/packages/pinball_components/test/helpers/helpers.dart @@ -1,2 +1,3 @@ +export 'key_testers.dart'; export 'mocks.dart'; export 'test_game.dart'; diff --git a/packages/pinball_components/test/helpers/key_testers.dart b/packages/pinball_components/test/helpers/key_testers.dart new file mode 100644 index 00000000..04fed1da --- /dev/null +++ b/packages/pinball_components/test/helpers/key_testers.dart @@ -0,0 +1,37 @@ +import 'package:flutter/services.dart'; +import 'package:meta/meta.dart'; +import 'package:mocktail/mocktail.dart'; + +import 'helpers.dart'; + +@isTest +void testRawKeyUpEvents( + List keys, + Function(RawKeyUpEvent) test, +) { + for (final key in keys) { + test(_mockKeyUpEvent(key)); + } +} + +RawKeyUpEvent _mockKeyUpEvent(LogicalKeyboardKey key) { + final event = MockRawKeyUpEvent(); + when(() => event.logicalKey).thenReturn(key); + return event; +} + +@isTest +void testRawKeyDownEvents( + List keys, + Function(RawKeyDownEvent) test, +) { + for (final key in keys) { + test(_mockKeyDownEvent(key)); + } +} + +RawKeyDownEvent _mockKeyDownEvent(LogicalKeyboardKey key) { + final event = MockRawKeyDownEvent(); + when(() => event.logicalKey).thenReturn(key); + return event; +} diff --git a/packages/pinball_components/test/helpers/mocks.dart b/packages/pinball_components/test/helpers/mocks.dart index 21d5d01a..b54fecbd 100644 --- a/packages/pinball_components/test/helpers/mocks.dart +++ b/packages/pinball_components/test/helpers/mocks.dart @@ -1,8 +1,24 @@ import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:mocktail/mocktail.dart'; import 'package:pinball_components/pinball_components.dart'; +class MockRawKeyDownEvent extends Mock implements RawKeyDownEvent { + @override + String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) { + return super.toString(); + } +} + +class MockRawKeyUpEvent extends Mock implements RawKeyUpEvent { + @override + String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) { + return super.toString(); + } +} + class MockFilter extends Mock implements Filter {} class MockFixture extends Mock implements Fixture {} diff --git a/test/game/components/plunger_test.dart b/packages/pinball_components/test/src/components/plunger_test.dart similarity index 99% rename from test/game/components/plunger_test.dart rename to packages/pinball_components/test/src/components/plunger_test.dart index 65789ae0..bbddf89c 100644 --- a/test/game/components/plunger_test.dart +++ b/packages/pinball_components/test/src/components/plunger_test.dart @@ -6,7 +6,7 @@ import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_test/flame_test.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:pinball/game/game.dart'; +import 'package:pinball_components/pinball_components.dart'; import '../../helpers/helpers.dart';