Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/unittests/manipulateAtomsTest.cpp

    r229e3c r57adc7  
    2222#include "atom.hpp"
    2323
    24 #ifdef HAVE_TESTRUNNER
    25 #include "UnitTestMain.hpp"
    26 #endif /*HAVE_TESTRUNNER*/
    27 
    2824// Registers the fixture into the 'registry'
    2925CPPUNIT_TEST_SUITE_REGISTRATION( manipulateAtomsTest );
     
    3430  AtomStub(int _id) :
    3531  atom(),
    36   manipulated(false),
    37   id(_id)
     32  id(_id),
     33  manipulated(false)
    3834  {}
    3935
     
    7066// set up and tear down
    7167void manipulateAtomsTest::setUp(){
    72   World::getInstance();
     68  World::get();
    7369  for(int i=0;i<ATOM_COUNT;++i){
    7470    atoms[i]= new AtomStub(i);
    75     World::getInstance().registerAtom(atoms[i]);
     71    World::get()->registerAtom(atoms[i]);
    7672  }
    7773}
    7874void manipulateAtomsTest::tearDown(){
    79   World::purgeInstance();
    80   ActionRegistry::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;
    81107}
    82108
     
    89115
    90116void manipulateAtomsTest::testManipulateSimple(){
    91   ManipulateAtomsProcess *proc = World::getInstance().manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());
     117  ManipulateAtomsProcess *proc = World::get()->manipulateAtoms(boost::bind(operation,_1),"FOO",AllAtoms());
    92118  proc->call();
    93   std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms());
     119  std::vector<atom*> allAtoms = World::get()->getAllAtoms(AllAtoms());
    94120  std::vector<atom*>::iterator iter;
    95121  for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){
     
    102128
    103129void manipulateAtomsTest::testManipulateExcluded(){
    104 
    105   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));
    106131  proc->call();
    107   std::vector<atom*> allAtoms = World::getInstance().getAllAtoms(AllAtoms());
     132  std::vector<atom*> allAtoms = World::get()->getAllAtoms(AllAtoms());
    108133  std::vector<atom*>::iterator iter;
    109134  for(iter=allAtoms.begin();iter!=allAtoms.end();++iter){
     
    120145void manipulateAtomsTest::testObserver(){
    121146  countObserver *obs = new countObserver();
    122   World::getInstance().signOn(obs);
    123   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));
    124149  proc->call();
    125150
    126151  CPPUNIT_ASSERT_EQUAL(1,obs->count);
    127   World::getInstance().signOff(obs);
     152  World::get()->signOff(obs);
    128153  delete obs;
    129154}
Note: See TracChangeset for help on using the changeset viewer.