/***************************************************************************
 *   Copyright (C) 2004 by Equipe Projet Univers                           *
 *   rogma.boami@free.fr                                                   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Lesser General Public License as        *
 *   published by the Free Software Foundation; either version 2.1 of the  *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU Lesser General Public License for more details.                   *
 *                                                                         *
 *   You should have received a copy of the GNU General Lesser Public      *
 *   License along with this program; if not, write to the                 *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/


#ifndef _PU_BASE_TEST_LISTE_H_
#define _PU_BASE_TEST_LISTE_H_


// Includes
#include <cppunit/extensions/HelperMacros.h>
#include "liste_composition.h"
#include "liste_association.h"


namespace ProjetUnivers {
  
  namespace Base {
    
    namespace Test {

      class ElementTestListe ;

      /*
      CLASS
        TestListe
      
        Teste les liste en association et en composition.
      */
      class TestListe : public CppUnit::TestFixture {
      protected:


        // ****************************
        // GROUP: Tests proprement dits
        // ****************************

        ////////////////
        // Teste l'ajout dans la liste.
        void TestAjouter() ;

        ///////////////
        // Teste que, mÍme une liste temporaire, peut Ítre 
        // parcourue.
        void TestParcoursListeTemporaire() ;

        //////////////
        // Teste la destruction de liste en composition.
        void TestDestruction() ;


        // ********************
        // GROUP: Mise en place
        // ********************


        CPPUNIT_TEST_SUITE(TestListe) ;

        CPPUNIT_TEST(TestAjouter) ;
        CPPUNIT_TEST(TestParcoursListeTemporaire) ;
        CPPUNIT_TEST(TestDestruction) ;

        CPPUNIT_TEST_SUITE_END() ;

      public:

        ///////////////
        // Initialisation du test
        void setUp() ;

        ///////////////
        // Desinitialisation du test
        void tearDown() ;







      private:



	      ListeAssociation< ElementTestListe > f() ;

        // une liste 
        ListeComposition< ElementTestListe > liste ;

      };

    }
  }
}

#endif 
    


