You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.7 KiB
46 lines
1.7 KiB
#ifdef TEST
|
|
#include "unity.h"
|
|
#include <stdlib.h>
|
|
#include "Historie.h"
|
|
#include "Spieler.h"
|
|
#include "Speichern.h"
|
|
|
|
|
|
void test_speichern_spielstand_historie(void) {
|
|
// Annahme: Historie mit einigen Zügen ist bereits vorhanden
|
|
int** historie;
|
|
int anzahl_zuege = 3;
|
|
historie = erstellen_historie();
|
|
|
|
//Test-Daten
|
|
historie[0][0] = 1; historie[0][1] = 2; historie[0][2] = 3; historie[0][3] = 4; historie[0][4] = 0; // Beispielzug 1
|
|
historie[1][0] = 5; historie[1][1] = 6; historie[1][2] = 7; historie[1][3] = 8; historie[1][4] = 1; // Beispielzug 2
|
|
historie[2][0] = 9; historie[2][1] = 10; historie[2][2] = 11; historie[2][3] = 12; historie[2][4] = 0; // Beispielzug 3
|
|
|
|
// Teste die Funktion zum Speichern des Spielstands
|
|
const char* test_dateiname = "test_spielstand.dat";
|
|
speichern_spielstand_historie(historie, anzahl_zuege, test_dateiname);
|
|
|
|
// Lese die gespeicherte Historie zurück
|
|
int** geladene_historie;
|
|
int geladene_anzahl_zuege;
|
|
|
|
laden_spielstand_historie(&geladene_historie, &geladene_anzahl_zuege, test_dateiname);
|
|
|
|
// Überprüfe, ob die geladene Historie mit der ursprünglichen Historie identisch ist
|
|
TEST_ASSERT_EQUAL_INT_MESSAGE(anzahl_zuege, geladene_anzahl_zuege, "Anzahl der Züge stimmt nicht überein");
|
|
|
|
for (int i = 0; i <= anzahl_zuege; i++) {
|
|
TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(historie[i], geladene_historie[i], 5, "Zuginformationen stimmen nicht überein");
|
|
}
|
|
|
|
// Freigabe des Speichers
|
|
for (int i = 0; i <= anzahl_zuege; i++) {
|
|
free(historie[i]);
|
|
free(geladene_historie[i]);
|
|
}
|
|
free(historie);
|
|
free(geladene_historie);
|
|
}
|
|
|
|
#endif // TEST
|