test: added strength assertions

pull/434/head
alestiago 3 years ago
parent 46c71619af
commit c7b74801a1

@ -7,7 +7,9 @@ import 'package:pinball_flame/pinball_flame.dart';
/// {@endtemplate} /// {@endtemplate}
class BumpingBehavior extends ContactBehavior { class BumpingBehavior extends ContactBehavior {
/// {@macro bumping_behavior} /// {@macro bumping_behavior}
BumpingBehavior({required double strength}) : _strength = strength; BumpingBehavior({required double strength})
: assert(strength >= 0, "Strength can't be negative."),
_strength = strength;
/// Determines how strong the bump is. /// Determines how strong the bump is.
final double _strength; final double _strength;

@ -7,7 +7,8 @@ class PlungerPullingBehavior extends Component
with FlameBlocReader<PlungerCubit, PlungerState> { with FlameBlocReader<PlungerCubit, PlungerState> {
PlungerPullingBehavior({ PlungerPullingBehavior({
required double strength, required double strength,
}) : _strength = strength; }) : assert(strength >= 0, "Strength can't be negative."),
_strength = strength;
final double _strength; final double _strength;
@ -22,7 +23,7 @@ class PlungerPullingBehavior extends Component
@override @override
void update(double dt) { void update(double dt) {
if (bloc.state.isPulling) { if (bloc.state.isPulling) {
_plunger.body.linearVelocity = Vector2(0, _strength.abs()); _plunger.body.linearVelocity = Vector2(0, _strength);
} }
} }
} }

@ -6,7 +6,8 @@ class PlungerReleasingBehavior extends Component
with FlameBlocListenable<PlungerCubit, PlungerState> { with FlameBlocListenable<PlungerCubit, PlungerState> {
PlungerReleasingBehavior({ PlungerReleasingBehavior({
required double strength, required double strength,
}) : _strength = strength; }) : assert(strength >= 0, "Strength can't be negative."),
_strength = strength;
final double _strength; final double _strength;
@ -22,8 +23,8 @@ class PlungerReleasingBehavior extends Component
void onNewState(PlungerState state) { void onNewState(PlungerState state) {
super.onNewState(state); super.onNewState(state);
if (state.isReleasing) { if (state.isReleasing) {
final velocity = (_plunger.initialPosition.y - _plunger.body.position.y) * final velocity =
_strength.abs(); (_plunger.initialPosition.y - _plunger.body.position.y) * _strength;
_plunger.body.linearVelocity = Vector2(0, velocity); _plunger.body.linearVelocity = Vector2(0, velocity);
} }
} }

@ -24,6 +24,20 @@ void main() {
final flameTester = FlameTester(TestGame.new); final flameTester = FlameTester(TestGame.new);
group('BumpingBehavior', () { group('BumpingBehavior', () {
test('can be instantiated', () {
expect(
BumpingBehavior(strength: 0),
isA<BumpingBehavior>(),
);
});
test('throws assertion error when strength is negative ', () {
expect(
() => BumpingBehavior(strength: -1),
throwsAssertionError,
);
});
flameTester.test('can be added', (game) async { flameTester.test('can be added', (game) async {
final behavior = BumpingBehavior(strength: 0); final behavior = BumpingBehavior(strength: 0);
final component = _TestBodyComponent(); final component = _TestBodyComponent();

@ -42,6 +42,13 @@ void main() {
); );
}); });
test('throws assertion error when strength is negative ', () {
expect(
() => PlungerPullingBehavior(strength: -1),
throwsAssertionError,
);
});
flameTester.test('can be loaded', (game) async { flameTester.test('can be loaded', (game) async {
final behavior = PlungerPullingBehavior(strength: 0); final behavior = PlungerPullingBehavior(strength: 0);
await game.pump(behavior); await game.pump(behavior);

@ -40,6 +40,13 @@ void main() {
); );
}); });
test('throws assertion error when strength is negative ', () {
expect(
() => PlungerReleasingBehavior(strength: -1),
throwsAssertionError,
);
});
flameTester.test('can be loaded', (game) async { flameTester.test('can be loaded', (game) async {
final behavior = PlungerReleasingBehavior(strength: 0); final behavior = PlungerReleasingBehavior(strength: 0);
await game.pump(behavior); await game.pump(behavior);

Loading…
Cancel
Save