Search in sources :

Example 11 with Enchere

use of domaine.Enchere in project Synthese_2BIN by TheYoungSensei.

the class Test method main.

public static void main(String[] args) {
    Utilisateur vendeur = new Utilisateur("Leconte", "Emmeline", "emmeline.leconte@ipl.be");
    Utilisateur vendeur2 = new Utilisateur("Dupont", "Annick", "annick.dupont@ipl.be");
    Utilisateur acheteur = new Utilisateur("Damas", "Christophe", "Christophe.Damas@ipl.be");
    Utilisateur acheteur2 = new Utilisateur("Frank", "Bernard", "Bernard.Frank@ipl.be");
    Objet objetVendu1 = new Objet("biblioth�que", vendeur);
    Enchere enchere1_1 = new Enchere(50, LocalDateTime.of(2015, 2, 7, 13, 48), objetVendu1, acheteur);
    Enchere enchere1_2 = new Enchere(75, LocalDateTime.of(2015, 2, 8, 13, 48), objetVendu1, acheteur2);
    try {
        new Enchere(100, LocalDateTime.of(2015, 2, 8, 13, 48), objetVendu1, acheteur);
    } catch (IllegalArgumentException e1) {
    // c'est normal.
    }
    List<Enchere> encheres = objetVendu1.encheres(LocalDateTime.of(2015, 2, 8, 13, 48));
    for (Enchere e : encheres) {
        System.out.println("Encherisseur : " + e.getEnchereur().getPrenom() + " " + e.getEnchereur().getNom());
        System.out.println("Montant de l'ench�re : " + e.getPrix());
    }
    Objet objetVendu2 = new Objet("bureau", vendeur);
    acheteur.ajouterObjetAchete(objetVendu1);
    Enchere enchere2 = new Enchere(150, LocalDateTime.of(2015, 2, 8, 13, 50), objetVendu2, acheteur);
    acheteur.ajouterObjetAchete(objetVendu2);
    Objet objetVendu3 = new Objet("table", vendeur2);
    Enchere enchere3 = new Enchere(100, LocalDateTime.of(2015, 2, 9, 13, 50), objetVendu3, acheteur);
    acheteur.ajouterObjetAchete(objetVendu3);
    SortedSet<Objet> objAch = acheteur.objetsAchetes(vendeur);
    for (Objet o : objAch) {
        System.out.println(o.getNum() + " " + o.getDescription() + " " + o.prixDeVente());
    }
}
Also used : Objet(domaine.Objet) Utilisateur(domaine.Utilisateur) Enchere(domaine.Enchere)

Example 12 with Enchere

use of domaine.Enchere in project Synthese_2BIN by TheYoungSensei.

the class GestionEncheres method accepter.

public boolean accepter(Objet objet) throws ObjetInexistantException, EnchereInexistanteException {
    Objet oSt = rechercherObjet(objet);
    Enchere enchere = oSt.meilleureEnchere();
    if (enchere == null)
        throw new EnchereInexistanteException();
    Utilisateur encherisseur = utilisateurs.get(enchere.getEncherisseur().getNum());
    if (!encherisseur.ajouterObjetAchete(oSt))
        return false;
    objetsEnVente.remove(oSt);
    objetsVendus.add(oSt);
    return true;
}
Also used : Objet(domaine.Objet) EnchereInexistanteException(exceptions.EnchereInexistanteException) Enchere(domaine.Enchere) Utilisateur(domaine.Utilisateur)

Example 13 with Enchere

use of domaine.Enchere in project Synthese_2BIN by TheYoungSensei.

the class GestionEncheres method encherir.

public Enchere encherir(Objet objet, Utilisateur encherisseur, double montant, LocalDateTime date) throws ObjetInexistantException, UtilisateurInexistantException {
    checkPositive(montant);
    checkObject(date);
    Utilisateur uSt = rechercherUtilisateur(encherisseur);
    Objet oSt = rechercherObjet(objet);
    try {
        LocalDate dateEnchere = date.toLocalDate();
        SortedSet<Enchere> encheresDuJour = encheres.get(dateEnchere);
        if (encheresDuJour != null) {
            // s'ajoutera pas dans la map à cause du equals/hashCode
            for (Enchere e : encheresDuJour) {
                if (e.getLocalDateTime().equals(date) && e.getEncherisseur().equals(uSt))
                    return null;
            }
        }
        Enchere enchere = new Enchere(oSt, date, montant, uSt);
        if (encheresDuJour == null) {
            encheresDuJour = new TreeSet<>(comp);
            encheres.put(dateEnchere, encheresDuJour);
        }
        encheresDuJour.add(enchere);
        // enchere immuable
        return enchere;
    } catch (IllegalArgumentException e) {
        // Exception lancée par le constructeur d'enchère
        return null;
    }
}
Also used : Objet(domaine.Objet) Utilisateur(domaine.Utilisateur) Enchere(domaine.Enchere) LocalDate(java.time.LocalDate)

Example 14 with Enchere

use of domaine.Enchere in project Synthese_2BIN by TheYoungSensei.

the class TestEnchere method main.

public static void main(String[] args) throws UtilisateurInexistantException, ObjetInexistantException, EnchereInexistanteException {
    GestionEncheres instance = GestionEncheres.getInstance();
    Utilisateur user1 = instance.inscrire("Leconte", "Emmeline", "emmeline.leconte@ipl.be");
    instance.inscrire("Dupont", "Annick", "annick.dupont@ipl.be");
    Utilisateur user2 = instance.inscrire("Damas", "Christophe", "Christophe.Damas@ipl.be");
    Utilisateur user3 = instance.inscrire("Frank", "Bernard", "Bernard.Frank@ipl.be");
    Objet ob1 = instance.mettreEnVente("bibliothèque", user1);
    Enchere ench1 = instance.encherir(ob1, user2, 50, LocalDateTime.of(2015, 2, 7, 13, 48));
    System.out.println(ench1.getObjet().ajouterEnchere(new Enchere(ench1.getObjet(), LocalDateTime.of(2015, 2, 8, 13, 48), 150, user3)) + " (TRUE attendu)");
    System.out.println(ench1.getObjet().encheres().size() + " devrait être 1");
    instance.encherir(ob1, user3, 200, LocalDateTime.of(2015, 2, 9, 13, 48));
    Enchere en = instance.encherir(ob1, user2, 200, LocalDateTime.of(2015, 2, 9, 13, 50));
    if (en != null)
        System.out.println("KO car en doit etre NULL car en  même montant");
    en = instance.encherir(ob1, user2, 250, LocalDateTime.of(2015, 2, 9, 13, 48));
    if (en != null)
        System.out.println("KO car en doit etre NULL car en même temps");
    List<Enchere> encheres = instance.listerEncheresDUnObjet(ob1);
    for (Enchere e : encheres) {
        System.out.print("Encherisseur : " + e.getEncherisseur().getPrenom() + " " + e.getEncherisseur().getNom());
        System.out.println(" Montant de l'enchère : " + e.getMontant());
    }
    Objet ob2 = instance.mettreEnVente("bureau", user1);
    instance.encherir(ob2, user2, 150, LocalDateTime.of(2015, 2, 8, 13, 50));
    System.out.println(instance.accepter(ob2) + " = TRUE car objet vendu");
    Objet ob3 = instance.mettreEnVente("table", user1);
    instance.encherir(ob3, user2, 100, LocalDateTime.of(2015, 2, 9, 13, 50));
    System.out.println(instance.accepter(ob3) + " = TRUE car objet vendu");
    System.out.println(instance.fournirObjetsAchetes(user2).size() + " devrait etre 2");
}
Also used : Objet(domaine.Objet) Utilisateur(domaine.Utilisateur) Enchere(domaine.Enchere)

Example 15 with Enchere

use of domaine.Enchere in project Synthese_2BIN by TheYoungSensei.

the class GestionEncheresTest method testMettreEnVente2.

@Test
public void testMettreEnVente2() throws UtilisateurInexistantException, ObjetInexistantException {
    Enchere e2 = new Enchere(o2, LocalDateTime.of(2017, 3, 15, 12, 25), 200, u3);
    assertFalse(instance.listerEncheresDUnObjet(o2).contains(e2));
}
Also used : Enchere(domaine.Enchere) Test(org.junit.Test)

Aggregations

Enchere (domaine.Enchere)15 Objet (domaine.Objet)13 Utilisateur (domaine.Utilisateur)11 Test (org.junit.Test)8 LocalDate (java.time.LocalDate)2 Before (org.junit.Before)2 EnchereInexistanteException (exceptions.EnchereInexistanteException)1 HashSet (java.util.HashSet)1