Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/unittests/manipulateAtomsTest.cpp

    r975a11 r57adc7  
    1818#include "Actions/ManipulateAtomsProcess.hpp"
    1919#include "Actions/ActionRegistry.hpp"
    20 #include "Actions/ActionHistory.hpp"
    2120
    2221#include "World.hpp"
    2322#include "atom.hpp"
    24 
    25 #ifdef HAVE_TESTRUNNER
    26 #include "UnitTestMain.hpp"
    27 #endif /*HAVE_TESTRUNNER*/
    2823
    2924// Registers the fixture into the 'registry'
     
    3530  AtomStub(int _id) :
    3631  atom(),
    37   manipulated(false),
    38   id(_id)
     32  id(_id),
     33  manipulated(false)
    3934  {}
    4035
     
    7166// set up and tear down
    7267void manipulateAtomsTest::setUp(){
    73   ActionHistory::init();
    74   World::getInstance();
     68  World::get();
    7569  for(int i=0;i<ATOM_COUNT;++i){
    7670    atoms[i]= new AtomStub(i);
    77     World::getInstance().registerAtom(atoms[i]);
     71    World::get()->registerAtom(atoms[i]);
    7872  }
    7973}
    8074void manipulateAtomsTest::tearDown(){
    81   World::purgeInstance();
    82   ActionRegistry::purgeInstance();
    83   ActionHistory::purgeInstance();
     75  World::destroy();
     76  ActionRegistry::purgeRegistry();
     77}
     78
     79// some helper functions
     80static bool hasAll(std::vector<atom*> atoms,int min, int max, std::set<int> excluded = std::set<int>()){
     81  for(int i=min;i<max;++i){
     82    if(!excluded.count(i)){
     83      std::vector<atom*>::iterator iter;
     84      bool res=false;
     85      for(iter=atoms.begin();iter!=atoms.end();++iter){
     86        res |= (*iter)->getId() == i;
     87      }
     88      if(!res) {
     89        cout << "Atom " << i << " missing in returned list" << endl;
     90        return false;
     91      }
     92    }
     93  }
     94  return true;
     95}
     96
     97static bool hasNoDuplicates(std::vector<atom*> atoms){
     98  std::set<int> found;
     99  std::vector<atom*>::iterator iter;
     100  for(iter=atoms.begin();iter!=atoms.end();++iter){
     101    int id = (*iter)->getId();
     102    if(found.count(id))
     103      return false;
     104    found.insert(id);
     105  }
     106  return true;
    84107}
    85108
     
    92115
    93116void manipulateAtomsTest::testManipulateSimple(){
    94   ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());
     117  ManipulateAtomsProcess *proc = World::get()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());
    95118  proc->call();
    96   std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms());
     119  std::vector<atom*> allAtoms = World::get()->getAllAtoms(AllAtoms());
    97120  std::vector<atom*>::iterator iter;
    98121  for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){
     
    105128
    106129void manipulateAtomsTest::testManipulateExcluded(){
    107 
    108   ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2));
     130  ManipulateAtomsProcess *proc = World::get()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2));
    109131  proc->call();
    110   std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms());
     132  std::vector<atom*> allAtoms = World::get()->getAllAtoms(AllAtoms());
    111133  std::vector<atom*>::iterator iter;
    112134  for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){
     
    123145void manipulateAtomsTest::testObserver(){
    124146  countObserver *obs = new countObserver();
    125   World::getInstance().signOn(obs);
    126   ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());
     147  World::get()->signOn(obs);
     148  ManipulateAtomsProcess *proc = World::get()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms() && !AtomById(ATOM_COUNT/2));
    127149  proc->call();
    128150
    129151  CPPUNIT_ASSERT_EQUAL(1,obs->count);
    130   World::getInstance().signOff(obs);
     152  World::get()->signOff(obs);
    131153  delete obs;
    132154}
Note: See TracChangeset for help on using the changeset viewer.