Compare commits

...

17 commits

Author SHA1 Message Date
skferrei
0159f4bb20 push final
Some checks failed
CI Workflow / build-and-test (push) Has been cancelled
2024-12-21 19:32:58 +01:00
skferrei
5c410afcd6 modifs CI forgejo pour activation sur toutes les branches (encore)
Some checks failed
CI Workflow / build-and-test (push) Has been cancelled
2024-12-18 18:32:49 +01:00
skferrei
51abef913b modifs CI forgejo pour activation sur toutes les branches 2024-12-18 18:30:59 +01:00
skferrei
28e27da6aa dernieres modifs tests unitaires et nouvelle CI forgejo 2024-12-18 18:26:37 +01:00
skferrei
88e707c859 merge master 18/12 2024-12-18 17:26:06 +01:00
2977651289 Add basic CI 2024-12-02 17:21:03 +01:00
9b5a4443b1 Trigger CI 2024-12-02 17:17:55 +01:00
1426626d15 Rename CI config file 2024-12-02 17:17:09 +01:00
54f0f30a04 Merge branch 'master' of https://git.etud.insa-toulouse.fr/el-ouali/PDLA_24 2024-12-02 17:14:11 +01:00
168941c6a0 test3 ci 2024-12-02 17:14:01 +01:00
e0cbc5f49d Actualiser .github/workflows/maven.yml 2024-12-02 17:13:30 +01:00
9770d72e8e test ci 2 2024-12-02 17:10:22 +01:00
e3d06bae75 Actualiser .github/workflows/maven.yml 2024-12-02 17:09:25 +01:00
552fb853bc also CI test
Some checks failed
Java CI / build (push) Has been cancelled
2024-12-02 17:05:42 +01:00
bd4aa6ddbe Test CI: modif test 2024-12-02 17:04:05 +01:00
d2c26ec6ed Merge branch 'master' of https://git.etud.insa-toulouse.fr/el-ouali/PDLA_24 2024-12-02 17:02:19 +01:00
b5302c08a4 Add CI configuration 2024-12-02 16:59:36 +01:00
5 changed files with 170 additions and 31 deletions

View file

@ -1,21 +0,0 @@
image: maven:3.8.3-openjdk-17
services:
- mysql:8.0
variables:
MYSQL_DATABASE: projet_gei_023
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: user
MYSQL_PASSWORD: ohQu4ood
MYSQL_HOST: mysql
stages:
- test
test:
stage: test
script:
- mvn test
only:
- master

View file

@ -0,0 +1,47 @@
name: CI Workflow
on:
push:
branches:
- "*"
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
# on recupere d'abord le code
- name: Checkout code
uses: actions/checkout@v3
# on setup java comme il faut
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: 'temurin' # OpenJDK
java-version: '17' # version de java pour le projet
# on definit l'url, login et mot de passe pour la bdd insa
- name: Set database environment variables
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: |
echo "Database environment variables have been set."
# on compile d'abord le projet...
- name: Compile project
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: mvn compile
# ...puis enfin on fait les tests comme voulu
- name: Run tests
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: mvn test

View file

@ -107,8 +107,6 @@ public class LoginPage extends JFrame {
}
public static void main(String[] args) {
System.out.println("encodage par défaut: " + Charset.defaultCharset().displayName());
LoginPage loginPage = new LoginPage();
loginPage.setVisible(true);
}

View file

@ -260,7 +260,7 @@ public class SoumettreDemande extends JFrame {
if (resultSet.next()) {
String currentStatus = resultSet.getString("statut");
if ("finaliseé".equals(currentStatus)) {
if ("finalisée".equals(currentStatus)) {
String avis = JOptionPane.showInputDialog(this, "Veuillez entrer votre avis (500 caractères max):", "Modification de l'avis", JOptionPane.PLAIN_MESSAGE);
if (!avis.isEmpty()) {

View file

@ -23,6 +23,7 @@ class SoumettreDemandeTest {
private DefaultTableModel tableModel;
private int utilisateurID = 1; // utilisateur arbitraire qui va créer les demandes de test
private int demandeID;
private int benevoleID = 2;
@BeforeEach
void setUp() throws NoSuchFieldException, IllegalAccessException {
@ -85,7 +86,7 @@ class SoumettreDemandeTest {
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
insertStatement.setString(1, "finalisée");
insertStatement.setInt(2, utilisateurID);
insertStatement.setNull(3, java.sql.Types.INTEGER); // Aucun bénévole affecté initialement
insertStatement.setInt(3, benevoleID);
insertStatement.setString(4, "Demande de test pour JUnit / Test modif avis_besoin");
insertStatement.setString(5, "Avis_besoin à modifier");
insertStatement.executeUpdate();
@ -119,12 +120,9 @@ class SoumettreDemandeTest {
statement.setInt(1, demandeID);
ResultSet resultSet = statement.executeQuery();
String currentAvis = "";
if (resultSet.next()) {
currentAvis = resultSet.getString("avis_besoin");
}
assertNotEquals("Avis_besoin à modifier", currentAvis, "L'avis n'a pas été modifié.");
assertTrue(resultSet.next(), "La demande doit exister.");
String nouvelAvis = resultSet.getString("avis_besoin");
assertNotEquals("Avis_besoin à modifier", nouvelAvis, "L'avis doit être modifié.");
// Suppression de la demande de test après le test de prendreDemande()
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
@ -137,4 +135,121 @@ class SoumettreDemandeTest {
}
}
@Test
void testLoadAnciennesDemandes() {
try (Connection connection = DatabaseConnection.getConnection()) {
// Créer trois demandes tests
String desc1 = "Demande de test 1 pour JUnit / Test loadAnciennesDemandes";
String desc2 = "Demande de test 2 pour JUnit / Test loadAnciennesDemandes";
String desc3 = "Demande de test 3 pour JUnit / Test loadAnciennesDemandes";
// Insertion de la première demande
String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description) VALUES (?, ?, ?, ?)";
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
insertStatement.setString(1, "soumise");
insertStatement.setInt(2, utilisateurID);
insertStatement.setNull(3, java.sql.Types.INTEGER);
insertStatement.setString(4, desc1);
insertStatement.executeUpdate();
ResultSet generatedKeys = insertStatement.getGeneratedKeys();
if (generatedKeys.next()) {
demandeID = generatedKeys.getInt(1);
}
// Insertion des autres demandes
insertStatement.setString(4, desc2);
insertStatement.executeUpdate();
insertStatement.setString(4, desc3);
insertStatement.executeUpdate();
// Charger les demandes dans la table
Method loadAnciennesDemandes = SoumettreDemande.class.getDeclaredMethod("loadAnciennesDemandes");
loadAnciennesDemandes.setAccessible(true);
loadAnciennesDemandes.invoke(soumettreDemande);
// Vérifier que les descriptions sont bien chargées
int lastRow = soumettreDemande.getTable().getRowCount() - 1;
String desc_actual = (String) soumettreDemande.getTableModel().getValueAt(lastRow-2, 1) +
(String) soumettreDemande.getTableModel().getValueAt(lastRow-1, 1) +
(String) soumettreDemande.getTableModel().getValueAt(lastRow, 1);
String desc_expected = desc1 + desc2 + desc3;
assertEquals(desc_expected, desc_actual, "Les descriptions doivent correspondre.");
// Nettoyage des données de test
for (int i = 0; i < 3; i++) {
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
deleteStatement.setInt(1, demandeID + i);
deleteStatement.executeUpdate();
}
} catch (SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e);
}
}
@Test
void testAfficherAvis() {
try (Connection connection = DatabaseConnection.getConnection()) {
// Créer une demande finalisée avec des avis
String description = "Demande test pour affichage des avis";
String avisBenevole = "Avis du bénévole test";
String avisBesoin = "Avis de la personne test";
String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description, avis_benevole, avis_besoin) VALUES (?, ?, ?, ?, ?, ?)";
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
insertStatement.setString(1, "finalisée");
insertStatement.setInt(2, utilisateurID);
insertStatement.setInt(3, benevoleID);
insertStatement.setString(4, description);
insertStatement.setString(5, avisBenevole);
insertStatement.setString(6, avisBesoin);
insertStatement.executeUpdate();
// Récupérer l'ID de la demande créée
ResultSet generatedKeys = insertStatement.getGeneratedKeys();
if (generatedKeys.next()) {
demandeID = generatedKeys.getInt(1);
}
// Charger les demandes dans la table
Method loadAnciennesDemandes = SoumettreDemande.class.getDeclaredMethod("loadAnciennesDemandes");
loadAnciennesDemandes.setAccessible(true);
loadAnciennesDemandes.invoke(soumettreDemande);
// Sélectionner la demande
int lastRow = soumettreDemande.getTable().getRowCount() - 1;
soumettreDemande.getTable().setRowSelectionInterval(lastRow, lastRow);
// Exécuter l'affichage des avis
Method afficherAvisMethod = SoumettreDemande.class.getDeclaredMethod("afficherAvis");
afficherAvisMethod.setAccessible(true);
afficherAvisMethod.invoke(soumettreDemande);
// Vérifier que les avis sont corrects dans la base de données
String checkSQL = "SELECT avis_benevole, avis_besoin, description FROM demandes_aide WHERE id = ?";
PreparedStatement checkStatement = connection.prepareStatement(checkSQL);
checkStatement.setInt(1, demandeID);
ResultSet resultSet = checkStatement.executeQuery();
assertTrue(resultSet.next(), "La demande doit exister");
assertEquals(avisBenevole, resultSet.getString("avis_benevole"), "TEST L'avis du bénévole doit correspondre");
assertEquals(avisBesoin, resultSet.getString("avis_besoin"), "TEST L'avis de la personne doit correspondre");
assertEquals(description, resultSet.getString("description"), "TEST La description doit correspondre");
// Nettoyage
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
deleteStatement.setInt(1, demandeID);
deleteStatement.executeUpdate();
} catch (SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}