dernieres modifs tests unitaires et nouvelle CI forgejo
This commit is contained in:
parent
88e707c859
commit
28e27da6aa
6 changed files with 171 additions and 39 deletions
48
.forgejo/workflow.yml
Normal file
48
.forgejo/workflow.yml
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
name: CI Workflow
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- 'feature/*'
|
||||||
|
|
||||||
|
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
|
15
.github/workflows/.gitlab-ci.yml
vendored
15
.github/workflows/.gitlab-ci.yml
vendored
|
@ -1,15 +0,0 @@
|
||||||
workflow:
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: maven:3.8.3-openjdk-11
|
|
||||||
script:
|
|
||||||
- mvn clean test
|
|
||||||
variables:
|
|
||||||
DB_URL: "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/projet_gei_023"
|
|
||||||
DB_USER: "projet_gei_023"
|
|
||||||
DB_PASSWORD: "ohQu4ood"
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
15
.github/workflows/maven.yml
vendored
15
.github/workflows/maven.yml
vendored
|
@ -1,15 +0,0 @@
|
||||||
workflow:
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: maven:3.8.3-openjdk-11
|
|
||||||
script:
|
|
||||||
- mvn clean test
|
|
||||||
variables:
|
|
||||||
DB_URL: "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/projet_gei_023"
|
|
||||||
DB_USER: "projet_gei_023"
|
|
||||||
DB_PASSWORD: "ohQu4ood"
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
|
@ -1 +0,0 @@
|
||||||
image: maven:3.8.3-openjdk-11
test:
script:
- mvn clean test
variables:
DB_URL: "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/projet_gei_023"
DB_USER: "projet_gei_023"
DB_PASSWORD: "ohQu4ood"
|
|
|
@ -260,7 +260,7 @@ public class SoumettreDemande extends JFrame {
|
||||||
if (resultSet.next()) {
|
if (resultSet.next()) {
|
||||||
String currentStatus = resultSet.getString("statut");
|
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);
|
String avis = JOptionPane.showInputDialog(this, "Veuillez entrer votre avis (500 caractères max):", "Modification de l'avis", JOptionPane.PLAIN_MESSAGE);
|
||||||
|
|
||||||
if (!avis.isEmpty()) {
|
if (!avis.isEmpty()) {
|
||||||
|
|
|
@ -23,6 +23,7 @@ class SoumettreDemandeTest {
|
||||||
private DefaultTableModel tableModel;
|
private DefaultTableModel tableModel;
|
||||||
private int utilisateurID = 1; // utilisateur arbitraire qui va créer les demandes de test
|
private int utilisateurID = 1; // utilisateur arbitraire qui va créer les demandes de test
|
||||||
private int demandeID;
|
private int demandeID;
|
||||||
|
private int benevoleID = 2;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() throws NoSuchFieldException, IllegalAccessException {
|
void setUp() throws NoSuchFieldException, IllegalAccessException {
|
||||||
|
@ -85,7 +86,7 @@ class SoumettreDemandeTest {
|
||||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
insertStatement.setString(1, "finalisée");
|
insertStatement.setString(1, "finalisée");
|
||||||
insertStatement.setInt(2, utilisateurID);
|
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(4, "Demande de test pour JUnit / Test modif avis_besoin");
|
||||||
insertStatement.setString(5, "Avis_besoin à modifier");
|
insertStatement.setString(5, "Avis_besoin à modifier");
|
||||||
insertStatement.executeUpdate();
|
insertStatement.executeUpdate();
|
||||||
|
@ -119,12 +120,9 @@ class SoumettreDemandeTest {
|
||||||
statement.setInt(1, demandeID);
|
statement.setInt(1, demandeID);
|
||||||
ResultSet resultSet = statement.executeQuery();
|
ResultSet resultSet = statement.executeQuery();
|
||||||
|
|
||||||
String currentAvis = "";
|
assertTrue(resultSet.next(), "La demande doit exister.");
|
||||||
if (resultSet.next()) {
|
String nouvelAvis = resultSet.getString("avis_besoin");
|
||||||
currentAvis = resultSet.getString("avis_besoin");
|
assertNotEquals("Avis_besoin à modifier", nouvelAvis, "L'avis doit être modifié.");
|
||||||
}
|
|
||||||
|
|
||||||
assertNotEquals("Avis_besoin à modifier", currentAvis, "L'avis n'a pas été modifié.");
|
|
||||||
|
|
||||||
// Suppression de la demande de test après le test de prendreDemande()
|
// Suppression de la demande de test après le test de prendreDemande()
|
||||||
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue