Etudes/ENSIM/Java/POOtpnote/src/test/java/AdministrateurTest.java
Tanguy Herbron da15ad375b [POO Note]
- Explication de certaines partie du code
- Détails concernant la modification du sujet/des tests unitaires
2018-11-30 18:17:47 +01:00

180 lines
6.2 KiB
Java

// Vos imports
import entity.*;
import material.Clavier;
import material.Ecran;
import material.Souris;
import material.UC;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class AdministrateurTest {
Entreprise e;
Agence a1, a2;
Empruntable e1, e2, e3, e4, e5, e6;
Employe admin, emp1, emp2, emp3, emp4;
@Before
public void setUp() throws Exception {
e = new Entreprise("Super Entreprise de l'ENSIM");
a1 = new Agence("Agence du Sud");
a2 = new Agence("Agence du Nord");
e.getAgences().add(a1);
e.getAgences().add(a2);
e1 = new UC(true);
e2 = new Ecran();
e3 = new Souris();
e4 = new Clavier();
e5 = new Clavier();
e6 = new Ecran();
/*
e.ajouterAuStock(e1);
e.ajouterAuStock(e2);
e.ajouterAuStock(e3);
e.ajouterAuStock(e4);
e.ajouterAuStock(e5);
e.ajouterAuStock(e6);
*/
admin = new Administrateur(a1, e);
emp1 = new Employe(a1, e);
emp2 = new Employe(a1, e);
emp3 = new Employe(a2, e);
emp4 = new Employe(a2, e);
a1.getEmployes().add(admin);
a1.getEmployes().add(emp1);
a1.getEmployes().add(emp2);
a2.getEmployes().add(emp3);
a2.getEmployes().add(emp4);
/*
e5.declarerDefectueux();
e6.declarerDefectueux();
*/
}
@Test
public void attribuerMateriel() {
int stockActuel = admin.listeMateriel().size();
((Administrateur) admin).attribuerMateriel(new Ecran(), admin);
Assert.assertEquals("attribuerMateriel: fail", stockActuel + 1, admin.listeMateriel().size());
}
//J'ai ici modifié le test unitaire pour que l'on vérifie le stock de l'entreprise et non de l'administrateur.
//Il me semblait plus logique que lors de la récupération du matériel, ce soit l'entreprise qui le récupère plutôt que l'admin ramèune ça chez lui.
@Test
public void recupererMateriel() {
int stockActuel = admin.listeMateriel().size();
emp1.listeMateriel().add(e1);
((Administrateur) admin).recupererMateriel(e1, emp1);
Assert.assertEquals("recupererMateriel: fail", stockActuel + 1, ((Administrateur) admin).stockEntreprise().size());
}
@Test
public void stockEntreprise() {
e.listeMateriel().add(e1);
int stockEntreprise = ((Administrateur) admin).stockEntreprise().size();
Assert.assertEquals("stock entreprise: fail", 1, stockEntreprise);
}
@Test
public void stockAgence() {
a1.listeMateriel().add(e1);
int stockAgence = ((Administrateur) admin).stockAgence().size();
Assert.assertEquals("stock agence de l'admin: fail", 1, stockAgence);
}
@Test
public void transfererMateriel_envoyeurNaPasObjetTransfere() {
int stockEmp2 = emp2.listeMateriel().size();
((Administrateur) admin).transfererMateriel(emp1, e2, emp2);
Assert.assertEquals("transfererMateriel (envoyeur n'a pas l'objet transféré): fail", stockEmp2, emp2.listeMateriel().size());
}
@Test
public void transfererMateriel_envoyeurAObjectMaisReserveAgence() {
int stockEmp2 = emp2.listeMateriel().size();
a1.listeMateriel().add(e1);
((Administrateur) admin).transfererMateriel(a1, e1, emp2);
Assert.assertEquals("transfererMateriel (envoyeur a l'objet mais transfert réservé agences): fail", stockEmp2, emp2.listeMateriel().size());
}
@Test
public void transfererMateriel_OK() {
int stockEmp2 = emp2.listeMateriel().size();
emp1.listeMateriel().add(e2);
((Administrateur) admin).transfererMateriel(emp1, e2, emp2);
Assert.assertEquals("transfererMateriel (transfert OK): fail", stockEmp2 + 1, emp2.listeMateriel().size());
}
@Test
public void supprimerMaterielDefectueuxEntreprise_sansMaterielDefectueux() {
e.listeMateriel().add(e4);
e.listeMateriel().add(e5);
int stockE = e.listeMateriel().size();
((Administrateur) admin).supprimerMaterielDefectueuxEntreprise();
Assert.assertEquals("supprimerMaterielDefectueuxEntreprise_sansMaterielDefectueux: fail", stockE, e.listeMateriel().size());
}
@Test
public void supprimerMaterielDefectueuxEntreprise_avecMaterielDefectueux() {
e.listeMateriel().add(e4);
e.listeMateriel().add(e5);
e5.declarerDefectueux();
int stockE = e.listeMateriel().size();
((Administrateur) admin).supprimerMaterielDefectueuxEntreprise();
Assert.assertEquals("supprimerMaterielDefectueuxEntreprise_avecMaterielDefectueux: fail", stockE - 1, e.listeMateriel().size());
for (Empruntable e : e.listeMateriel()) {
Assert.assertEquals("supprimerMaterielDefectueuxEntreprise_avecMaterielDefectueux: fail car il reste un Empruntable defectueux", false, e.isDefectueux());
}
}
@Test
public void supprimerMaterielDefectueuxAgence_sansMaterielDefectueux() {
a1.listeMateriel().add(e4);
a1.listeMateriel().add(e5);
int stockA1 = a1.listeMateriel().size();
((Administrateur) admin).supprimerMaterielDefectueuxAgence();
Assert.assertEquals("supprimerMaterielDefectueuxAgence_sansMaterielDefectueux: fail", stockA1, a1.listeMateriel().size());
}
@Test
public void supprimerMaterielDefectueuxAgence_avecMaterielDefectueux() {
a1.listeMateriel().add(e4);
a1.listeMateriel().add(e5);
e5.declarerDefectueux();
int stockA1 = a1.listeMateriel().size();
((Administrateur) admin).supprimerMaterielDefectueuxAgence();
Assert.assertEquals("supprimerMaterielDefectueuxAgence_avecMaterielDefectueux: fail", stockA1 - 1, a1.listeMateriel().size());
for (Empruntable e : a1.listeMateriel()) {
Assert.assertEquals("supprimerMaterielDefectueuxAgence_avecMaterielDefectueux: fail car il reste un Empruntable defectueux", false, e.isDefectueux());
}
}
@Test
public void achatMateriel()
{
int stockA1 = e.listeMateriel().size();
((Administrateur) admin).achatDeMateriel(e1);
Assert.assertEquals("achatDeMateriel: fail", stockA1 + 1, e.listeMateriel().size());
}
}