chore: todos for refactor multiball childrens

pull/235/head
RuiAlonso 3 years ago
parent 638c48d6c7
commit 05f6b7c900

@ -31,11 +31,16 @@ class MultiballGroup extends Component
Future<void> onLoad() async {
await super.onLoad();
multiballA = Multiball.a();
multiballB = Multiball.b();
multiballC = Multiball.c();
multiballD = Multiball.d();
await addAll([
multiballA = Multiball.a(),
multiballB = Multiball.b(),
multiballC = Multiball.c(),
multiballD = Multiball.d(),
multiballA,
multiballB,
multiballC,
multiballD,
]);
}
}
@ -60,6 +65,9 @@ class MultiballController extends ComponentController<MultiballGroup>
final hasMultiball = state.bonusHistory.contains(GameBonus.dashNest);
if (hasMultiball) {
// TODO(ruimiguel): change to animate every children without different
// properties using component.children.whereType<Multiball>().forEach
// once able to mock the children ComponentSet.
component.multiballA.animate();
component.multiballB.animate();
component.multiballC.animate();

@ -1,5 +1,6 @@
// ignore_for_file: cascade_invocations
import 'package:flame/components.dart';
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
@ -89,21 +90,35 @@ void main() {
flameTester.test(
'blink multiballs when state changes',
(game) async {
// TODO(ruimiguel): search how to mock MultiballGroup children
// ComponentSet to improve this test.
final multiballGroup = MockMultiballGroup();
final multiball = MockMultiball();
final multiballA = MockMultiball();
final multiballB = MockMultiball();
final multiballC = MockMultiball();
final multiballD = MockMultiball();
final controller = MultiballController(multiballGroup);
when(() => multiballGroup.multiballA).thenReturn(multiball);
when(() => multiballGroup.multiballB).thenReturn(multiball);
when(() => multiballGroup.multiballC).thenReturn(multiball);
when(() => multiballGroup.multiballD).thenReturn(multiball);
when(multiball.animate).thenAnswer((_) async => () {});
when(() => multiballGroup.multiballA).thenReturn(multiballA);
when(() => multiballGroup.multiballB).thenReturn(multiballB);
when(() => multiballGroup.multiballC).thenReturn(multiballC);
when(() => multiballGroup.multiballD).thenReturn(multiballD);
when(() => multiballGroup.children).thenReturn(
{multiballA} as ComponentSet,
);
when(multiballA.animate).thenAnswer((_) async => () {});
when(multiballB.animate).thenAnswer((_) async => () {});
when(multiballC.animate).thenAnswer((_) async => () {});
when(multiballD.animate).thenAnswer((_) async => () {});
controller.onNewState(
const GameState.initial()
.copyWith(bonusHistory: [GameBonus.dashNest]),
);
verify(() => multiball.animate).called(4);
verify(multiballA.animate).called(1);
verify(multiballB.animate).called(1);
verify(multiballC.animate).called(1);
verify(multiballD.animate).called(1);
},
);
},

Loading…
Cancel
Save