feat: ammended old tests

pull/151/head
alestiago 4 years ago
parent f93cdd8ef9
commit a18bf5ef70

@ -10,6 +10,7 @@ void main() {
GameState( GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusBalls: 0,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
bonusHistory: const [], bonusHistory: const [],
@ -18,6 +19,7 @@ void main() {
const GameState( const GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -32,6 +34,7 @@ void main() {
const GameState( const GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -49,6 +52,25 @@ void main() {
() => GameState( () => GameState(
balls: -1, balls: -1,
score: 0, score: 0,
bonusBalls: 0,
activatedBonusLetters: const [],
activatedDashNests: const {},
bonusHistory: const [],
),
throwsAssertionError,
);
},
);
test(
'throws AssertionError '
'when bonusBalls are negative',
() {
expect(
() => GameState(
balls: 0,
score: 0,
bonusBalls: -1,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
bonusHistory: const [], bonusHistory: const [],
@ -65,6 +87,7 @@ void main() {
expect( expect(
() => GameState( () => GameState(
balls: 0, balls: 0,
bonusBalls: 0,
score: -1, score: -1,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
@ -82,6 +105,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
score: 0, score: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -95,6 +119,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 1, balls: 1,
score: 0, score: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -110,6 +135,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 3, balls: 3,
score: 0, score: 0,
bonusBalls: 0,
activatedBonusLetters: [1], activatedBonusLetters: [1],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -124,6 +150,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 3, balls: 3,
score: 0, score: 0,
bonusBalls: 0,
activatedBonusLetters: [1], activatedBonusLetters: [1],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -140,6 +167,7 @@ void main() {
() { () {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
bonusBalls: 0,
score: 2, score: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
@ -158,6 +186,7 @@ void main() {
() { () {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
bonusBalls: 0,
score: 2, score: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
@ -177,6 +206,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
score: 2, score: 2,
balls: 0, balls: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -184,6 +214,7 @@ void main() {
final otherGameState = GameState( final otherGameState = GameState(
score: gameState.score + 1, score: gameState.score + 1,
balls: gameState.balls + 1, balls: gameState.balls + 1,
bonusBalls: gameState.bonusBalls + 1,
activatedBonusLetters: const [0], activatedBonusLetters: const [0],
activatedDashNests: const {'1'}, activatedDashNests: const {'1'},
bonusHistory: const [GameBonus.word], bonusHistory: const [GameBonus.word],

@ -262,6 +262,7 @@ void main() {
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 2, balls: 2,
bonusBalls: 0,
activatedBonusLetters: [0], activatedBonusLetters: [0],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -290,6 +291,7 @@ void main() {
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 2, balls: 2,
bonusBalls: 0,
activatedBonusLetters: [0], activatedBonusLetters: [0],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],
@ -333,6 +335,7 @@ void main() {
final state = GameState( final state = GameState(
score: 0, score: 0,
balls: 2, balls: 2,
bonusBalls: 0,
activatedBonusLetters: [index], activatedBonusLetters: [index],
activatedDashNests: const {}, activatedDashNests: const {},
bonusHistory: const [], bonusHistory: const [],

@ -84,114 +84,6 @@ void main() {
verify(() => gameBloc.add(const BallLost())).called(1); verify(() => gameBloc.add(const BallLost())).called(1);
}, },
); );
group('listenWhen', () {
flameBlocTester.testGameWidget(
'listens when a ball has been lost',
setUp: (game, tester) async {
final controller = LaunchedBallController(ball);
await ball.add(controller);
await game.ensureAdd(ball);
},
verify: (game, tester) async {
final controller =
game.descendants().whereType<LaunchedBallController>().first;
final previousState = MockGameState();
final newState = MockGameState();
when(() => previousState.balls).thenReturn(3);
when(() => newState.balls).thenReturn(2);
expect(controller.listenWhen(previousState, newState), isTrue);
},
);
flameBlocTester.testGameWidget(
'does not listen when a ball has not been lost',
setUp: (game, tester) async {
final controller = LaunchedBallController(ball);
await ball.add(controller);
await game.ensureAdd(ball);
},
verify: (game, tester) async {
final controller =
game.descendants().whereType<LaunchedBallController>().first;
final previousState = MockGameState();
final newState = MockGameState();
when(() => previousState.balls).thenReturn(3);
when(() => newState.balls).thenReturn(3);
expect(controller.listenWhen(previousState, newState), isFalse);
},
);
});
group('onNewState', () {
flameBlocTester.testGameWidget(
'removes ball',
setUp: (game, tester) async {
final controller = LaunchedBallController(ball);
await ball.add(controller);
await game.ensureAdd(ball);
final state = MockGameState();
when(() => state.balls).thenReturn(1);
controller.onNewState(state);
await game.ready();
},
verify: (game, tester) async {
expect(game.contains(ball), isFalse);
},
);
flameBlocTester.testGameWidget(
'spawns a new ball when the ball is not the last one',
setUp: (game, tester) async {
final controller = LaunchedBallController(ball);
await ball.add(controller);
await game.ensureAdd(ball);
final state = MockGameState();
when(() => state.balls).thenReturn(1);
final previousBalls = game.descendants().whereType<Ball>().toList();
controller.onNewState(state);
await game.ready();
final currentBalls = game.descendants().whereType<Ball>().toList();
expect(currentBalls.contains(ball), isFalse);
expect(currentBalls.length, equals(previousBalls.length));
},
);
flameBlocTester.testGameWidget(
'does not spawn a new ball is the last one',
setUp: (game, tester) async {
final controller = LaunchedBallController(ball);
await ball.add(controller);
await game.ensureAdd(ball);
final state = MockGameState();
when(() => state.balls).thenReturn(0);
final previousBalls = game.descendants().whereType<Ball>().toList();
controller.onNewState(state);
await game.ready();
final currentBalls = game.descendants().whereType<Ball>();
expect(currentBalls.contains(ball), isFalse);
expect(
currentBalls.length,
equals((previousBalls..remove(ball)).length),
);
},
);
});
}); });
}); });
} }

@ -92,17 +92,19 @@ void main() {
); );
flameBlocTester.testGameWidget( flameBlocTester.testGameWidget(
'listens when a Bonus.dashNest is added', 'listens when a Bonus.dashNest and a bonusBall is added',
verify: (game, tester) async { verify: (game, tester) async {
final flutterForest = FlutterForest(); final flutterForest = FlutterForest();
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusBalls: 1,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [GameBonus.dashNest], bonusHistory: [GameBonus.dashNest],
); );
expect( expect(
flutterForest.controller flutterForest.controller
.listenWhen(const GameState.initial(), state), .listenWhen(const GameState.initial(), state),

@ -12,6 +12,7 @@ void main() {
const initialState = GameState( const initialState = GameState(
score: 10, score: 10,
balls: 2, balls: 2,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],

@ -87,6 +87,7 @@ void main() {
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusBalls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
bonusHistory: [], bonusHistory: [],

Loading…
Cancel
Save