1 #include <gmock/gmock.h> 
    2 #include <gtest/gtest.h> 
    5 #include <mbf_msgs/GetPathAction.h> 
    8 #include <mbf_abstract_nav/abstract_action_base.hpp> 
   19   MOCK_METHOD0(cancel, 
bool());
 
   22   MOCK_METHOD0(run, 
void());
 
   29     : 
public AbstractActionBase<mbf_msgs::GetPathAction, MockedExecution>,
 
   37       : test_name(
"action_base"),
 
   38         ri(tf_, 
"global_frame", 
"local_frame", 
ros::Duration(0)),
 
   39         AbstractActionBase(test_name, ri)
 
   48   unsigned char slot = 1;
 
   50   concurrency_slots_[slot].thread_ptr =
 
   51       threads_.create_thread(boost::bind(&AbstractActionBaseFixture::run, 
this,
 
   52                                          boost::ref(concurrency_slots_[slot])));
 
   55 using testing::Return;
 
   60   for (
unsigned char slot = 0; slot != 10; ++slot) {
 
   63     EXPECT_CALL(*concurrency_slots_[slot].execution, cancel())
 
   64         .WillRepeatedly(Return(
true));
 
   67     concurrency_slots_[slot].in_use = 
true;
 
   68     concurrency_slots_[slot].thread_ptr = threads_.create_thread(
 
   69         boost::bind(&AbstractActionBaseFixture::run, 
this,
 
   70                     boost::ref(concurrency_slots_[slot])));
 
   77   for (ConcurrencyMap::iterator slot = concurrency_slots_.begin();
 
   78        slot != concurrency_slots_.end(); ++slot)
 
   79     ASSERT_FALSE(slot->second.in_use);
 
   82 int main(
int argc, 
char **argv)
 
   85   ros::init(argc, argv, 
"abstract_action_base");
 
   87   testing::InitGoogleTest(&argc, argv);
 
   88   return RUN_ALL_TESTS();