Merge branch 'Arthur_Tests'
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
# Conflicts: # .drone.ymldeployed
commit
5cf8668cc2
@ -1,44 +1,17 @@
|
||||
import 'Player.dart';
|
||||
|
||||
class Game {
|
||||
int _id;
|
||||
DateTime _date;
|
||||
int _pointsCurrentUser;
|
||||
bool _isFinished;
|
||||
List<Player> _players = [];
|
||||
final int _id;
|
||||
final DateTime _date;
|
||||
final int _pointsCurrentUser;
|
||||
final List<Player> _players;
|
||||
|
||||
// Constructor
|
||||
Game(this._id, this._date, this._pointsCurrentUser, this._isFinished,
|
||||
Game(this._id, this._date, this._pointsCurrentUser,
|
||||
this._players);
|
||||
|
||||
// Getters and setters
|
||||
int get id => _id;
|
||||
|
||||
set id(int value) {
|
||||
_id = value;
|
||||
}
|
||||
|
||||
DateTime get date => _date;
|
||||
|
||||
set date(DateTime value) {
|
||||
_date = value;
|
||||
}
|
||||
|
||||
int get pointsCurrentUser => _pointsCurrentUser;
|
||||
|
||||
set pointsCurrentUser(int value) {
|
||||
_pointsCurrentUser = value;
|
||||
}
|
||||
|
||||
bool get isFinished => _isFinished;
|
||||
|
||||
set isFinished(bool value) {
|
||||
_isFinished = value;
|
||||
}
|
||||
|
||||
List<Player> get players => _players;
|
||||
|
||||
set playersId(List<Player> value) {
|
||||
_players = value;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
import 'package:bowl_in/model/GameDetail.dart';
|
||||
import 'package:bowl_in/model/Guest.dart';
|
||||
import 'package:bowl_in/model/IManager.dart';
|
||||
import 'package:bowl_in/model/Player.dart';
|
||||
import 'package:bowl_in/model/StubManager/StubData.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void testManager(IManager mgr) {
|
||||
test("Test manager " + mgr.runtimeType.toString(), () {
|
||||
expect(mgr.userCurrent, mgr.userMgr.getUsersByName("Dave").first);
|
||||
expect(mgr.userCurrent, mgr.userMgr.getUserById(mgr.userCurrent.id));
|
||||
|
||||
List<Player> players = [mgr.userCurrent, Guest("Emre")];
|
||||
GameDetail gd = GameDetail(
|
||||
mgr.gameMgr.getNextId(), DateTime.now(), null, mgr.userCurrent.id, players);
|
||||
|
||||
expect(gd.players, players);
|
||||
expect(gd.host, mgr.userCurrent.id);
|
||||
|
||||
|
||||
mgr.gameMgr.addGame(gd);
|
||||
|
||||
expect(gd, mgr.gameMgr.getGameById(gd.id));
|
||||
|
||||
expect(gd, mgr.gameMgr.getGamesByPlayer(mgr.userCurrent).first);
|
||||
|
||||
expect(gd, mgr.gameMgr.getGamesByPlayerId(mgr.userCurrent.id).first);
|
||||
|
||||
expect(players, mgr.gameMgr.getPlayersByIdGame(gd.id));
|
||||
|
||||
expect(gd, mgr.gameMgr.getGamesByPlayers(players).first);
|
||||
});
|
||||
}
|
||||
|
||||
void main() {
|
||||
testManager(StubData());
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
import 'package:bowl_in/model/AbstractRound.dart';
|
||||
import 'package:bowl_in/model/GameDetail.dart';
|
||||
import 'package:bowl_in/model/GamePlayer.dart';
|
||||
import 'package:bowl_in/model/Guest.dart';
|
||||
import 'package:bowl_in/model/IManager.dart';
|
||||
import 'package:bowl_in/model/Player.dart';
|
||||
import 'package:bowl_in/model/StubManager/StubData.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
test("Just strikes", (){
|
||||
final IManager mgr = StubData();
|
||||
final List<Player> listPlayers = [mgr.userCurrent, Guest("Lucas")];
|
||||
|
||||
final GameDetail gd = GameDetail(
|
||||
-1,
|
||||
DateTime.now(),
|
||||
null,
|
||||
mgr.userCurrent.id,
|
||||
listPlayers);
|
||||
mgr.gamePlayer.game = gd;
|
||||
mgr.gamePlayer.onNext(false, null);
|
||||
|
||||
AbstractRound? currentRound = mgr.gamePlayer.currentRound;
|
||||
while (currentRound != null) {
|
||||
bool isFinished = currentRound.computeNext(10);
|
||||
if (currentRound.isSpareOrStrike()) {
|
||||
mgr.gamePlayer.onSpareOrStrike();
|
||||
}
|
||||
mgr.gamePlayer.onNext(isFinished, null);
|
||||
currentRound = mgr.gamePlayer.currentRound;
|
||||
}
|
||||
|
||||
final int score = gd
|
||||
.getRank()
|
||||
.values
|
||||
.first;
|
||||
expect(score, 300);
|
||||
});
|
||||
|
||||
test("Classic game", (){
|
||||
final IManager mgr = StubData();
|
||||
final List<Player> listPlayers = [mgr.userCurrent, Guest("Lucas")];
|
||||
|
||||
final DateTime dateGame = DateTime.now();
|
||||
|
||||
final GameDetail gd = GameDetail(
|
||||
-1,
|
||||
dateGame,
|
||||
null,
|
||||
mgr.userCurrent.id,
|
||||
listPlayers);
|
||||
mgr.gamePlayer.game = gd;
|
||||
mgr.gamePlayer.onNext(false, null);
|
||||
|
||||
makeThrow(7, mgr.gamePlayer);
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
|
||||
makeThrow(10, mgr.gamePlayer);
|
||||
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
|
||||
makeThrow(3, mgr.gamePlayer);
|
||||
makeThrow(7, mgr.gamePlayer);
|
||||
|
||||
makeThrow(0, mgr.gamePlayer);
|
||||
makeThrow(7, mgr.gamePlayer);
|
||||
|
||||
makeThrow(10, mgr.gamePlayer);
|
||||
|
||||
makeThrow(0, mgr.gamePlayer);
|
||||
makeThrow(0, mgr.gamePlayer);
|
||||
|
||||
makeThrow(9, mgr.gamePlayer);
|
||||
makeThrow(0, mgr.gamePlayer);
|
||||
|
||||
makeThrow(0, mgr.gamePlayer);
|
||||
makeThrow(10, mgr.gamePlayer);
|
||||
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
makeThrow(5, mgr.gamePlayer);
|
||||
|
||||
makeThrow(10, mgr.gamePlayer);
|
||||
|
||||
makeThrow(3, mgr.gamePlayer);
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
|
||||
makeThrow(1, mgr.gamePlayer);
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
|
||||
makeThrow(7, mgr.gamePlayer);
|
||||
makeThrow(1, mgr.gamePlayer);
|
||||
|
||||
makeThrow(4, mgr.gamePlayer);
|
||||
makeThrow(6, mgr.gamePlayer);
|
||||
|
||||
makeThrow(1, mgr.gamePlayer);
|
||||
makeThrow(7, mgr.gamePlayer);
|
||||
|
||||
makeThrow(10, mgr.gamePlayer);
|
||||
makeThrow(6, mgr.gamePlayer);
|
||||
makeThrow(2, mgr.gamePlayer);
|
||||
|
||||
makeThrow(8, mgr.gamePlayer);
|
||||
makeThrow(1, mgr.gamePlayer);
|
||||
|
||||
|
||||
|
||||
final Iterable<int> score = gd
|
||||
.getRank()
|
||||
.values;
|
||||
expect(score.first, 128);
|
||||
expect(score.last, 95);
|
||||
|
||||
expect(mgr.userCurrent.games.length, 1);
|
||||
expect(mgr.userCurrent.games.first.id, mgr.gamePlayer.game.id);
|
||||
expect(mgr.userCurrent.games.first.pointsCurrentUser, 128);
|
||||
expect(mgr.userCurrent.games.first.date, dateGame);
|
||||
expect(mgr.userCurrent.games.first.players, listPlayers);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
void makeThrow(int input, GamePlayer gamePlayer){
|
||||
AbstractRound currentRound = gamePlayer.currentRound!;
|
||||
bool isFinished = currentRound.computeNext(input);
|
||||
if (currentRound.isSpareOrStrike()) {
|
||||
gamePlayer.onSpareOrStrike();
|
||||
}
|
||||
gamePlayer.onNext(isFinished, null);
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
import 'package:bowl_in/model/LastRound.dart';
|
||||
import 'package:bowl_in/model/Round.dart';
|
||||
import 'package:bowl_in/model/Stat.dart';
|
||||
import 'package:bowl_in/model/User.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
|
||||
void main() {
|
||||
test("Test Round", (){
|
||||
User u = User(1, "Louison" , "Sources/bowlin_project/assets/images/image_user_pink.png", "loparant@gmail.com", [], []);
|
||||
Round r = Round(null, null, null, u, 1);
|
||||
|
||||
expect(r.getMaxPinsThisShot(), 10);
|
||||
expect(r.isSpareOrStrike(), false);
|
||||
|
||||
r.computeNext(4);
|
||||
|
||||
expect(r.getMaxPinsThisShot(), 6);
|
||||
r.computeNext(6);
|
||||
|
||||
|
||||
expect(r.isSpare(), true);
|
||||
expect(r.isSpareOrStrike(), true);
|
||||
expect(r.isStrike(), false);
|
||||
expect(r.getNbSpares(), 1);
|
||||
expect(r.getNbStrike(), 0);
|
||||
|
||||
Round r2 = Round(null, null, null, u, 2);
|
||||
r2.computeNext(10);
|
||||
expect(r2.isSpare(), false);
|
||||
expect(r2.isStrike(), true);
|
||||
expect(r2.isSpareOrStrike(), true);
|
||||
expect(r2.getNbSpares(), 0);
|
||||
expect(r2.getNbStrike(), 1);
|
||||
|
||||
Round r3 = Round(null, null, null, u, 2);
|
||||
r3.computeNext(2);
|
||||
r3.computeNext(5);
|
||||
expect(r3.getPinsKnockedDown(), 7);
|
||||
});
|
||||
|
||||
test("Test LastRound", (){
|
||||
User u = User(1, "Louison" , "Sources/bowlin_project/assets/images/image_user_pink.png", "loparant@gmail.com", [], []);
|
||||
LastRound r = LastRound(null, null, null, u, 1, null);
|
||||
|
||||
expect(r.getMaxPinsThisShot(), 10);
|
||||
expect(r.isSpareOrStrike(), false);
|
||||
r.computeNext(10);
|
||||
|
||||
expect(r.getMaxPinsThisShot(), 10);
|
||||
r.computeNext(10);
|
||||
|
||||
expect(r.getMaxPinsThisShot(), 10);
|
||||
r.computeNext(10);
|
||||
|
||||
expect(r.getPinsKnockedDown(), 30);
|
||||
expect(r.getNbSpares(), 0);
|
||||
expect(r.getNbStrike(), 3);
|
||||
|
||||
LastRound r2 = LastRound(null, null, null, u, 1, null);
|
||||
r2.computeNext(1);
|
||||
expect(r2.getMaxPinsThisShot(), 9);
|
||||
r2.computeNext(9);
|
||||
expect(r2.getMaxPinsThisShot(), 10);
|
||||
r2.computeNext(10);
|
||||
expect(r2.getPinsKnockedDown(), 20);
|
||||
expect(r2.getNbSpares(), 1);
|
||||
expect(r2.getNbStrike(), 1);
|
||||
|
||||
LastRound r3 = LastRound(null, null, null, u, 1, null);
|
||||
r3.computeNext(10);
|
||||
r3.computeNext(2);
|
||||
expect(r3.getMaxPinsThisShot(), 8);
|
||||
r3.computeNext(8);
|
||||
expect(r3.getPinsKnockedDown(), 20);
|
||||
expect(r3.getNbSpares(), 1);
|
||||
expect(r3.getNbStrike(), 1);
|
||||
|
||||
});
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
// This is a basic Flutter widget test.
|
||||
//
|
||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
||||
// utility in the flutter_test package. For example, you can send tap and scroll
|
||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
||||
// tree, read text, and verify that the values of widget properties are correct.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:bowl_in/main.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
||||
// Build our app and trigger a frame.
|
||||
await tester.pumpWidget(const MyApp());
|
||||
|
||||
// Verify that our counter starts at 0.
|
||||
expect(find.text('0'), findsOneWidget);
|
||||
expect(find.text('1'), findsNothing);
|
||||
|
||||
// Tap the '+' icon and trigger a frame.
|
||||
await tester.tap(find.byIcon(Icons.add));
|
||||
await tester.pump();
|
||||
|
||||
// Verify that our counter has incremented.
|
||||
expect(find.text('0'), findsNothing);
|
||||
expect(find.text('1'), findsOneWidget);
|
||||
});
|
||||
}
|
Loading…
Reference in new issue