import java.io.*;
import java.util.*;

public class TestCommandeLecture {
  // Test des classes créées dans ce TD :
  // Créer une commande, ajouter et enlever des lignes,
  // calculer le prix total de la commande.
  // On commence par créer les articles et les lots.
  // Version sans interface graphique
  public static void main(String argv[])
    throws CloneNotSupportedException,
           IOException, RefExistePasException,
           RefDoubleException, ClassNotFoundException {
    // Lecture des articles
    Article.litArticles(new File("articles.data"));
    Article s1 = Article.getArticle("s1");
    Article s2 = Article.getArticle("s2");
    Article r1 = Article.getArticle("r1");
    Article l1 = Article.getArticle("l1");
    Article l2 = Article.getArticle("l2");
    Article l3 = Article.getArticle("l3");


    // Affichage pour vérification
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(r1);
    System.out.println(l1);
    System.out.println(l2);
    System.out.println(l3);

    // Création d'une facture
    Commande f1 = new Commande("Patrick");

    // Ajout des lignes de la commande
    f1.ajouterLigneCommande(s1,3);
    f1.ajouterLigneCommande(l1,1);
    f1.ajouterLigneCommande(r1,2);

    // Affiche la facture
    // Est-ce qu'il y a un toString implicite ?
    System.out.println("*** FACTURE ***");
    System.out.println(f1);
    // Création d'une autre facture
    Commande f2 = new Commande("Richard");

    // Ajout des lignes de la commande
    f2.ajouterLigneCommande(s1,3);
    f2.ajouterLigneCommande(l1,1);
    f2.ajouterLigneCommande(r1,2);

    // Affiche la facture
    // Est-ce qu'il y a un toString implicite ?
    System.out.println("*** FACTURE ***");
    System.out.println(f2);

    // Test de clone
    Commande f3 = (Commande)f2.clone();
    System.out.println("*** FACTURE CLONE***");
    System.out.println(f3);

    // Test de l'énumeration
    System.out.println("*** FACTURE ENUMEREE ***");
    Enumeration enum = f3.lignesCommande();
    while (enum.hasMoreElements()) {
      System.out.println(enum.nextElement());
    }


    System.out.println("(press Enter to exit)");
    try {
        System.in.read();
    } catch (IOException e) {
        return;
    }

  }
}
