mirror of https://github.com/flutter/pinball.git
parent
045c549a1e
commit
34f2e4e667
@ -0,0 +1,106 @@
|
||||
// ignore_for_file: cascade_invocations
|
||||
|
||||
import 'package:flame_test/flame_test.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';
|
||||
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
final assets = [
|
||||
Assets.images.multiplier.x2.active.keyName,
|
||||
Assets.images.multiplier.x2.inactive.keyName,
|
||||
Assets.images.multiplier.x3.active.keyName,
|
||||
Assets.images.multiplier.x3.inactive.keyName,
|
||||
Assets.images.multiplier.x4.active.keyName,
|
||||
Assets.images.multiplier.x4.inactive.keyName,
|
||||
Assets.images.multiplier.x5.active.keyName,
|
||||
Assets.images.multiplier.x5.inactive.keyName,
|
||||
Assets.images.multiplier.x6.active.keyName,
|
||||
Assets.images.multiplier.x6.inactive.keyName,
|
||||
];
|
||||
final flameTester = FlameTester(() => EmptyPinballTestGame(assets));
|
||||
|
||||
group('MultipliersGroup', () {
|
||||
flameTester.test(
|
||||
'loads correctly',
|
||||
(game) async {
|
||||
final multipliersGroup = MultipliersGroup();
|
||||
await game.ensureAdd(multipliersGroup);
|
||||
|
||||
expect(game.contains(multipliersGroup), isTrue);
|
||||
},
|
||||
);
|
||||
|
||||
group('loads', () {
|
||||
flameTester.test(
|
||||
'five Multiplier',
|
||||
(game) async {
|
||||
final multipliersGroup = MultipliersGroup();
|
||||
await game.ensureAdd(multipliersGroup);
|
||||
|
||||
expect(
|
||||
multipliersGroup.descendants().whereType<Multiplier>().length,
|
||||
equals(5),
|
||||
);
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
group('MultipliersController', () {
|
||||
group('controller', () {
|
||||
// TODO(ruimiguel): change these tests to check multiplier change.
|
||||
group('listenWhen', () {
|
||||
flameTester.test(
|
||||
'listens when score has changed',
|
||||
(game) async {
|
||||
const previous = GameState.initial();
|
||||
final state = previous.copyWith(score: 100);
|
||||
|
||||
final multipliersGroup = MultipliersGroup();
|
||||
await game.ensureAdd(multipliersGroup);
|
||||
|
||||
expect(
|
||||
multipliersGroup.controller.listenWhen(previous, state),
|
||||
isTrue,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
flameTester.test(
|
||||
"doesn't listen when score is the same",
|
||||
(game) async {
|
||||
const previous = GameState.initial();
|
||||
|
||||
final multipliersGroup = MultipliersGroup();
|
||||
await game.ensureAdd(multipliersGroup);
|
||||
|
||||
expect(
|
||||
multipliersGroup.controller.listenWhen(previous, previous),
|
||||
isFalse,
|
||||
);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
group(
|
||||
'onNewState',
|
||||
() {
|
||||
flameTester.test(
|
||||
'spawns a ball',
|
||||
(game) async {
|
||||
final state = GameState.initial().copyWith(score: 100);
|
||||
|
||||
final multipliersGroup = MultipliersGroup();
|
||||
await game.ensureAdd(multipliersGroup);
|
||||
|
||||
multipliersGroup.controller.onNewState(state);
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in new issue