test: test sparky bumper bloc event

pull/154/head
RuiAlonso 4 years ago
parent 14cf994dda
commit b1a7132b7a

@ -1,3 +1,5 @@
// ignore_for_file: prefer_const_constructors
import 'package:bloc_test/bloc_test.dart'; import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart'; import 'package:pinball/game/game.dart';
@ -26,6 +28,7 @@ void main() {
balls: 2, balls: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
const GameState( const GameState(
@ -33,6 +36,7 @@ void main() {
balls: 1, balls: 1,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
const GameState( const GameState(
@ -40,6 +44,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
], ],
@ -60,6 +65,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
const GameState( const GameState(
@ -67,6 +73,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
], ],
@ -88,6 +95,7 @@ void main() {
balls: 2, balls: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
const GameState( const GameState(
@ -95,6 +103,7 @@ void main() {
balls: 1, balls: 1,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
const GameState( const GameState(
@ -102,6 +111,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
], ],
@ -122,6 +132,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0], activatedBonusLetters: [0],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -129,6 +140,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1], activatedBonusLetters: [0, 1],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -136,6 +148,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1, 2], activatedBonusLetters: [0, 1, 2],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
], ],
@ -157,6 +170,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0], activatedBonusLetters: [0],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -164,6 +178,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1], activatedBonusLetters: [0, 1],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -171,6 +186,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1, 2], activatedBonusLetters: [0, 1, 2],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -178,6 +194,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1, 2, 3], activatedBonusLetters: [0, 1, 2, 3],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -185,6 +202,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [0, 1, 2, 3, 4], activatedBonusLetters: [0, 1, 2, 3, 4],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -192,6 +210,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [GameBonus.word], bonusHistory: [GameBonus.word],
), ),
GameState( GameState(
@ -199,6 +218,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [GameBonus.word], bonusHistory: [GameBonus.word],
), ),
], ],
@ -219,6 +239,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {'0'}, activatedDashNests: {'0'},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -226,6 +247,7 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {'0', '1'}, activatedDashNests: {'0', '1'},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
GameState( GameState(
@ -233,10 +255,45 @@ void main() {
balls: 3, balls: 3,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [GameBonus.dashNest], bonusHistory: [GameBonus.dashNest],
), ),
], ],
); );
}); });
group('SparkyFireActivated', () {
const fireId = '0';
blocTest<GameBloc, GameState>(
'adds fireId to collection when activate',
build: GameBloc.new,
act: (bloc) => bloc..add(const SparkyFireActivated(fireId)),
expect: () => [
isA<GameState>()
..having(
(state) => state.activatedSparkyFires,
'activatedSparkyFires',
contains(fireId),
),
],
);
blocTest<GameBloc, GameState>(
'removes fireId from collection when deactivate',
build: GameBloc.new,
seed: () =>
GameState.initial().copyWith(activatedSparkyFires: {fireId}),
act: (bloc) => bloc..add(const SparkyFireActivated(fireId)),
expect: () => [
isA<GameState>()
..having(
(state) => state.activatedSparkyFires,
'activatedSparkyFires',
isNot(contains(fireId)),
),
],
);
});
}); });
} }

@ -84,5 +84,22 @@ void main() {
); );
}); });
}); });
group('SparkyFireActivated', () {
test('can be instantiated', () {
expect(const SparkyFireActivated('0'), isNotNull);
});
test('supports value equality', () {
expect(
SparkyFireActivated('0'),
equals(SparkyFireActivated('0')),
);
expect(
SparkyFireActivated('0'),
isNot(equals(SparkyFireActivated('1'))),
);
});
});
}); });
} }

@ -12,6 +12,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
activatedSparkyFires: const {},
bonusHistory: const [], bonusHistory: const [],
), ),
equals( equals(
@ -20,6 +21,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
), ),
@ -34,6 +36,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
), ),
isNotNull, isNotNull,
@ -51,6 +54,7 @@ void main() {
score: 0, score: 0,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
activatedSparkyFires: const {},
bonusHistory: const [], bonusHistory: const [],
), ),
throwsAssertionError, throwsAssertionError,
@ -68,6 +72,7 @@ void main() {
score: -1, score: -1,
activatedBonusLetters: const [], activatedBonusLetters: const [],
activatedDashNests: const {}, activatedDashNests: const {},
activatedSparkyFires: const {},
bonusHistory: const [], bonusHistory: const [],
), ),
throwsAssertionError, throwsAssertionError,
@ -84,6 +89,7 @@ void main() {
score: 0, score: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect(gameState.isGameOver, isTrue); expect(gameState.isGameOver, isTrue);
@ -97,6 +103,7 @@ void main() {
score: 0, score: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect(gameState.isGameOver, isFalse); expect(gameState.isGameOver, isFalse);
@ -112,6 +119,7 @@ void main() {
score: 0, score: 0,
activatedBonusLetters: [1], activatedBonusLetters: [1],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect(gameState.isLetterActivated(1), isTrue); expect(gameState.isLetterActivated(1), isTrue);
@ -126,6 +134,7 @@ void main() {
score: 0, score: 0,
activatedBonusLetters: [1], activatedBonusLetters: [1],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect(gameState.isLetterActivated(0), isFalse); expect(gameState.isLetterActivated(0), isFalse);
@ -143,6 +152,7 @@ void main() {
score: 2, score: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect( expect(
@ -161,6 +171,7 @@ void main() {
score: 2, score: 2,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
expect( expect(
@ -179,6 +190,7 @@ void main() {
balls: 0, balls: 0,
activatedBonusLetters: [], activatedBonusLetters: [],
activatedDashNests: {}, activatedDashNests: {},
activatedSparkyFires: {},
bonusHistory: [], bonusHistory: [],
); );
final otherGameState = GameState( final otherGameState = GameState(
@ -186,6 +198,7 @@ void main() {
balls: gameState.balls + 1, balls: gameState.balls + 1,
activatedBonusLetters: const [0], activatedBonusLetters: const [0],
activatedDashNests: const {'1'}, activatedDashNests: const {'1'},
activatedSparkyFires: const {'1'},
bonusHistory: const [GameBonus.word], bonusHistory: const [GameBonus.word],
); );
expect(gameState, isNot(equals(otherGameState))); expect(gameState, isNot(equals(otherGameState)));
@ -196,6 +209,7 @@ void main() {
balls: otherGameState.balls, balls: otherGameState.balls,
activatedBonusLetters: otherGameState.activatedBonusLetters, activatedBonusLetters: otherGameState.activatedBonusLetters,
activatedDashNests: otherGameState.activatedDashNests, activatedDashNests: otherGameState.activatedDashNests,
activatedSparkyFires: otherGameState.activatedSparkyFires,
bonusHistory: otherGameState.bonusHistory, bonusHistory: otherGameState.bonusHistory,
), ),
equals(otherGameState), equals(otherGameState),

Loading…
Cancel
Save