getAllGames returnt nicht alle Attribute von der game Klasse #45

Merged
flixcoo merged 20 commits from bug/37-getallgames-returnt-nicht-alle-attribute-von-der-game-klasse into development 2025-11-22 15:22:11 +00:00
3 changed files with 251 additions and 55 deletions
Showing only changes of commit 89b3f1ff69 - Show all commits

View File

@@ -15,7 +15,9 @@ void main() {
late Player player4; late Player player4;
late Player player5; late Player player5;
late Group testgroup; late Group testgroup;
late Group testgroup2;
late Game testgame; late Game testgame;
late Game testgame2;
final fixedDate = DateTime(2025, 19, 11, 00, 11, 23); final fixedDate = DateTime(2025, 19, 11, 00, 11, 23);
final fakeClock = Clock(() => fixedDate); final fakeClock = Clock(() => fixedDate);
@@ -38,19 +40,28 @@ void main() {
name: 'Test Group', name: 'Test Group',
members: [player1, player2, player3], members: [player1, player2, player3],
); );
testgroup2 = Group(
name: 'Test Group',
members: [player1, player2, player3],
);
testgame = Game( testgame = Game(
name: 'Test Game', name: 'Test Game',
group: testgroup, group: testgroup,
players: [player4, player5], players: [player4, player5],
); );
testgame2 = Game(
name: 'Second Test Game',
group: testgroup2,
players: [player1, player2, player3],
);
}); });
}); });
tearDown(() async { tearDown(() async {
await database.close(); await database.close();
}); });
group('game tests', () { group('Game Tests', () {
test('game is added correctly', () async { test('Adding and fetching single game works correclty', () async {
await database.gameDao.addGame(game: testgame); await database.gameDao.addGame(game: testgame);
final result = await database.gameDao.getGameById(gameId: testgame.id); final result = await database.gameDao.getGameById(gameId: testgame.id);
@@ -83,7 +94,116 @@ void main() {
} }
}); });
test('game is deleted correctly', () async { // TODO: Use upcoming addGames() method
test('Adding and fetching multiple games works correclty', () async {
await database.gameDao.addGame(game: testgame);
await database.gameDao.addGame(game: testgame2);
final allGames = await database.gameDao.getAllGames();
expect(allGames.length, 2);
final fetchedGame1 = allGames.firstWhere((g) => g.id == testgame.id);
// game checks
expect(fetchedGame1.id, testgame.id);
expect(fetchedGame1.name, testgame.name);
expect(fetchedGame1.createdAt, testgame.createdAt);
expect(fetchedGame1.winner, testgame.winner);
// group checks
expect(fetchedGame1.group!.id, testgame.group!.id);
expect(fetchedGame1.group!.name, testgame.group!.name);
expect(fetchedGame1.group!.createdAt, testgame.group!.createdAt);
// group members checks
expect(
fetchedGame1.group!.members.length,
testgame.group!.members.length,
);
for (int i = 0; i < testgame.group!.members.length; i++) {
expect(
fetchedGame1.group!.members[i].id,
testgame.group!.members[i].id,
);
expect(
fetchedGame1.group!.members[i].name,
testgame.group!.members[i].name,
);
expect(
fetchedGame1.group!.members[i].createdAt,
flixcoo marked this conversation as resolved Outdated

was ist wenn bspw. testGame1 die group null ist, obwohl sie ja eigentlich nicht null sein soll? darauf müsste doch auch überprüft werden

was ist wenn bspw. testGame1 die group null ist, obwohl sie ja eigentlich nicht null sein soll? darauf müsste doch auch überprüft werden
testgame.group!.members[i].createdAt,
);
}
// players checks
for (int i = 0; i < fetchedGame1.players!.length; i++) {
expect(fetchedGame1.players![i].id, testgame.players![i].id);
expect(fetchedGame1.players![i].name, testgame.players![i].name);
expect(
fetchedGame1.players![i].createdAt,
testgame.players![i].createdAt,
);
}
final fetchedGame2 = allGames.firstWhere((g) => g.id == testgame2.id);
// game checks
expect(fetchedGame2.id, testgame2.id);
expect(fetchedGame2.name, testgame2.name);
expect(fetchedGame2.createdAt, testgame2.createdAt);
expect(fetchedGame2.winner, testgame2.winner);
// group checks
expect(fetchedGame2.group!.id, testgame2.group!.id);
expect(fetchedGame2.group!.name, testgame2.group!.name);
expect(fetchedGame2.group!.createdAt, testgame2.group!.createdAt);
// group members checks
expect(
fetchedGame2.group!.members.length,
testgame2.group!.members.length,
);
for (int i = 0; i < testgame2.group!.members.length; i++) {
expect(
fetchedGame2.group!.members[i].id,
testgame2.group!.members[i].id,
);
expect(
fetchedGame2.group!.members[i].name,
testgame2.group!.members[i].name,
);
expect(
fetchedGame2.group!.members[i].createdAt,
testgame2.group!.members[i].createdAt,
);
}
// players checks
for (int i = 0; i < fetchedGame2.players!.length; i++) {
expect(fetchedGame2.players![i].id, testgame2.players![i].id);
expect(fetchedGame2.players![i].name, testgame2.players![i].name);
expect(
fetchedGame2.players![i].createdAt,
testgame2.players![i].createdAt,
);
}
});
test('Adding the same game twice does not create duplicates', () async {
await database.gameDao.addGame(game: testgame);
await database.gameDao.addGame(game: testgame);
final gameCount = await database.gameDao.getGameCount();
expect(gameCount, 1);
});
test('Game existence check works correctly', () async {
var gameExists = await database.gameDao.gameExists(gameId: testgame.id);
expect(gameExists, false);
await database.gameDao.addGame(game: testgame);
gameExists = await database.gameDao.gameExists(gameId: testgame.id);
expect(gameExists, true);
});
test('Deleting a game works correclty', () async {
await database.gameDao.addGame(game: testgame); await database.gameDao.addGame(game: testgame);
final gameDeleted = await database.gameDao.deleteGame( final gameDeleted = await database.gameDao.deleteGame(
@@ -95,22 +215,35 @@ void main() {
expect(gameExists, false); expect(gameExists, false);
}); });
test('get game count works correctly', () async { test('Getting the game count works correctly', () async {
final initialCount = await database.gameDao.getGameCount(); var gameCount = await database.gameDao.getGameCount();
expect(initialCount, 0); expect(gameCount, 0);
await database.gameDao.addGame(game: testgame); await database.gameDao.addGame(game: testgame);
final gameAdded = await database.gameDao.getGameCount(); gameCount = await database.gameDao.getGameCount();
expect(gameAdded, 1); expect(gameCount, 1);
final gameRemoved = await database.gameDao.deleteGame( await database.gameDao.addGame(game: testgame2);
gameId: testgame.id,
);
expect(gameRemoved, true);
final finalCount = await database.gameDao.getGameCount(); gameCount = await database.gameDao.getGameCount();
expect(finalCount, 0); expect(gameCount, 2);
await database.gameDao.deleteGame(gameId: testgame.id);
gameCount = await database.gameDao.getGameCount();
expect(gameCount, 1);
await database.gameDao.deleteGame(gameId: testgame2.id);
gameCount = await database.gameDao.getGameCount();
expect(gameCount, 0);
}); });
// TODO: Implement
test('Adding a player to a game works correclty', () async {});
// TODO: Implement
test('Adding a group to a game works correclty', () async {});
}); });
} }

View File

@@ -45,8 +45,31 @@ void main() {
tearDown(() async { tearDown(() async {
await database.close(); await database.close();
}); });
group('group tests', () { group('Group Tests', () {
test('all groups get fetched correctly', () async { test('Adding and fetching a single group works correctly', () async {
await database.groupDao.addGroup(group: testgroup);
final fetchedGroup = await database.groupDao.getGroupById(
groupId: testgroup.id,
);
expect(fetchedGroup.id, testgroup.id);
expect(fetchedGroup.name, testgroup.name);
expect(fetchedGroup.createdAt, testgroup.createdAt);
expect(fetchedGroup.members.length, testgroup.members.length);
for (int i = 0; i < testgroup.members.length; i++) {
expect(fetchedGroup.members[i].id, testgroup.members[i].id);
expect(fetchedGroup.members[i].name, testgroup.members[i].name);
expect(
fetchedGroup.members[i].createdAt,
testgroup.members[i].createdAt,
);
}
});
// TODO: Use upcoming addGroups() method
test('Adding and fetching a single group works correctly', () async {
await database.groupDao.addGroup(group: testgroup); await database.groupDao.addGroup(group: testgroup);
await database.groupDao.addGroup(group: testgroup2); await database.groupDao.addGroup(group: testgroup2);
@@ -66,26 +89,27 @@ void main() {
expect(fetchedGroup2.members.elementAt(0).createdAt, player2.createdAt); expect(fetchedGroup2.members.elementAt(0).createdAt, player2.createdAt);
}); });
test('group and group members gets added correctly', () async { test('Adding the same group twice does not create duplicates', () async {
await database.groupDao.addGroup(group: testgroup);
await database.groupDao.addGroup(group: testgroup); await database.groupDao.addGroup(group: testgroup);
final result = await database.groupDao.getGroupById( final allGroups = await database.groupDao.getAllGroups();
groupId: testgroup.id, expect(allGroups.length, 1);
);
expect(result.id, testgroup.id);
expect(result.name, testgroup.name);
expect(result.createdAt, testgroup.createdAt);
expect(result.members.length, testgroup.members.length);
for (int i = 0; i < testgroup.members.length; i++) {
expect(result.members[i].id, testgroup.members[i].id);
expect(result.members[i].name, testgroup.members[i].name);
expect(result.members[i].createdAt, testgroup.members[i].createdAt);
}
}); });
test('group gets deleted correctly', () async { test('Group existence check works correctly', () async {
var groupExists = await database.groupDao.groupExists(
groupId: testgroup.id,
);
expect(groupExists, false);
await database.groupDao.addGroup(group: testgroup);
groupExists = await database.groupDao.groupExists(groupId: testgroup.id);
expect(groupExists, true);
});
test('Deleting a group works correclty', () async {
await database.groupDao.addGroup(group: testgroup); await database.groupDao.addGroup(group: testgroup);
final groupDeleted = await database.groupDao.deleteGroup( final groupDeleted = await database.groupDao.deleteGroup(
@@ -99,7 +123,7 @@ void main() {
expect(groupExists, false); expect(groupExists, false);
}); });
test('group name gets updated correcly ', () async { test('Updating a group name works correcly', () async {
await database.groupDao.addGroup(group: testgroup); await database.groupDao.addGroup(group: testgroup);
const newGroupName = 'new group name'; const newGroupName = 'new group name';
@@ -167,7 +191,7 @@ void main() {
expect(playerExists, false); expect(playerExists, false);
}); });
test('get group count works correctly', () async { test('Getting the group count works correctly', () async {
final initialCount = await database.groupDao.getGroupCount(); final initialCount = await database.groupDao.getGroupCount();
expect(initialCount, 0); expect(initialCount, 0);

View File

@@ -31,7 +31,7 @@ void main() {
}); });
group('player tests', () { group('player tests', () {
test('all players get fetched correctly', () async { test('Adding and fetching single player works correclty', () async {
await database.playerDao.addPlayer(player: testPlayer); await database.playerDao.addPlayer(player: testPlayer);
await database.playerDao.addPlayer(player: testPlayer2); await database.playerDao.addPlayer(player: testPlayer2);
@@ -51,18 +51,50 @@ void main() {
expect(fetchedPlayer2.createdAt, testPlayer2.createdAt); expect(fetchedPlayer2.createdAt, testPlayer2.createdAt);
}); });
test('players get inserted correcly ', () async { // TODO: Use upcoming addPlayers() method
test('Adding and fetching multiple players works correclty', () async {
await database.playerDao.addPlayer(player: testPlayer); await database.playerDao.addPlayer(player: testPlayer);
final result = await database.playerDao.getPlayerById( await database.playerDao.addPlayer(player: testPlayer2);
playerId: testPlayer.id,
);
expect(result.id, testPlayer.id); final allPlayers = await database.playerDao.getAllPlayers();
flixcoo marked this conversation as resolved
Review

remove comment

remove comment
expect(result.name, testPlayer.name); expect(allPlayers.length, 2);
expect(result.createdAt, testPlayer.createdAt);
final fetchedPlayer1 = allPlayers.firstWhere(
(g) => g.id == testPlayer.id,
);
expect(fetchedPlayer1.name, testPlayer.name);
expect(fetchedPlayer1.createdAt, testPlayer.createdAt);
final fetchedPlayer2 = allPlayers.firstWhere(
(g) => g.id == testPlayer2.id,
);
expect(fetchedPlayer2.name, testPlayer2.name);
expect(fetchedPlayer2.createdAt, testPlayer2.createdAt);
}); });
test('players get deleted correcly ', () async { test('Adding the same player twice does not create duplicates', () async {
await database.playerDao.addPlayer(player: testPlayer);
await database.playerDao.addPlayer(player: testPlayer);
final allPlayers = await database.playerDao.getAllPlayers();
expect(allPlayers.length, 1);
});
test('Player existence check works correctly', () async {
var playerExists = await database.playerDao.playerExists(
playerId: testPlayer.id,
);
expect(playerExists, false);
await database.playerDao.addPlayer(player: testPlayer);
playerExists = await database.playerDao.playerExists(
playerId: testPlayer.id,
);
expect(playerExists, true);
});
test('Deleting a player works correclty', () async {
await database.playerDao.addPlayer(player: testPlayer); await database.playerDao.addPlayer(player: testPlayer);
final playerDeleted = await database.playerDao.deletePlayer( final playerDeleted = await database.playerDao.deletePlayer(
playerId: testPlayer.id, playerId: testPlayer.id,
@@ -75,7 +107,7 @@ void main() {
expect(playerExists, false); expect(playerExists, false);
}); });
test('player name gets updated correcly ', () async { test('Updating a player name works correcly', () async {
await database.playerDao.addPlayer(player: testPlayer); await database.playerDao.addPlayer(player: testPlayer);
const newPlayerName = 'new player name'; const newPlayerName = 'new player name';
@@ -91,22 +123,29 @@ void main() {
expect(result.name, newPlayerName); expect(result.name, newPlayerName);
}); });
test('get player count works correctly', () async { test('Getting the player count works correctly', () async {
final initialCount = await database.playerDao.getPlayerCount(); var playerCount = await database.playerDao.getPlayerCount();
expect(initialCount, 0); expect(playerCount, 0);
await database.playerDao.addPlayer(player: testPlayer); await database.playerDao.addPlayer(player: testPlayer);
final playerAdded = await database.playerDao.getPlayerCount(); playerCount = await database.playerDao.getPlayerCount();
expect(playerAdded, 1); expect(playerCount, 1);
final playerRemoved = await database.playerDao.deletePlayer( await database.playerDao.addPlayer(player: testPlayer2);
playerId: testPlayer.id,
);
expect(playerRemoved, true);
final finalCount = await database.playerDao.getPlayerCount(); playerCount = await database.playerDao.getPlayerCount();
expect(finalCount, 0); expect(playerCount, 2);
await database.playerDao.deletePlayer(playerId: testPlayer.id);
playerCount = await database.playerDao.getPlayerCount();
expect(playerCount, 1);
await database.playerDao.deletePlayer(playerId: testPlayer2.id);
playerCount = await database.playerDao.getPlayerCount();
expect(playerCount, 0);
}); });
}); });
} }