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}
class BumpingBehavior extends ContactBehavior {
/// {@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.
final double _strength;

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

@ -24,6 +24,20 @@ void main() {
final flameTester = FlameTester(TestGame.new);
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 {
final behavior = BumpingBehavior(strength: 0);
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 {
final behavior = PlungerPullingBehavior(strength: 0);
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 {
final behavior = PlungerReleasingBehavior(strength: 0);
await game.pump(behavior);

Loading…
Cancel
Save