/**
 *Classe per il testing: vengono creati quattro conti, viene fatto un deposito, 4 operazioni
 *su un conto con spese, un trasferimento, una stampa, si fa trascorrere un anno, poi
 *un calcolo interessi e saldo finale e una stampa, poi un ordinamento e di nuovo una stampa
 *
 * @author Antonio Terreno
 * @created 11 maggio 2002
 */

public class ProvaBanca {
        /**
         * @param args Eventuali argomenti
         */
        public static void main(String args[]) {

                ContoCorrente conto1 = new ContoCorrente("Antonio", 150);
                ContoCorrente conto2 = new ContoCorrente("Paolo", 100);
                ContoCorrente conto3 = new ContoCorrente("Simona");
                ContoCorrente conto4 = new ContoCorrenteConSpese("Mario", 500);
                ContoCorrente.stampaTuttiIConti();
                try {
                        conto1.deposita(-10);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }

                try {
                        conto4.deposita(10);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }
                try {
                        conto4.preleva(10);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }
                try {
                        conto4.preleva(10);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }
                try {
                        conto4.deposita(10);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }
                //notare che supero il numero di operazioni gratuite per il conto4

                try {
                        conto1.trasferisci(50, conto2);
                } catch (MovimentoErrato me) {
                        System.out.println(me.getErr());
                }
                ContoCorrente.stampaTuttiIConti();
                ContoCorrente.data.incrementaAnno();
                ContoCorrente.interesseFinaleTotale();
                ContoCorrente.saldoFinaleTotale();

                try {
                        SortArray.sort(ContoCorrente.arrayOfContoCorrente, ContoCorrente.getIndiceUltimoConto());
                } catch (ClassCastException cce) {
                        System.out.println("C'e' stata un'eccezione cce");
                } catch (NullPointerException npe) {
                        System.out.println("C'e' stata un'eccezione npe");
                }
                System.out.println("\nDopo l'ordinamento con il Selection sort...");
                ContoCorrente.stampaTuttiIConti();

        }
}