detect_plug_test.cpp
Go to the documentation of this file.
00001 /*                                                                                     
00002  * Copyright (c) 2008, Willow Garage, Inc.                                             
00003  * All rights reserved.                                                                
00004  *                                                                                     
00005  * Redistribution and use in source and binary forms, with or without                  
00006  * modification, are permitted provided that the following conditions are met:         
00007  *                                                                                     
00008  *     * Redistributions of source code must retain the above copyright                
00009  *       notice, this list of conditions and the following disclaimer.                 
00010  *     * Redistributions in binary form must reproduce the above copyright             
00011  *       notice, this list of conditions and the following disclaimer in the           
00012  *       documentation and/or other materials provided with the distribution.          
00013  *     * Neither the name of the Willow Garage, Inc. nor the names of its              
00014  *       contributors may be used to endorse or promote products derived from          
00015  *       this software without specific prior written permission.                      
00016  *                                                                                     
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"         
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE           
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE          
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE            
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR                 
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF                
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS            
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN             
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)             
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          
00027  * POSSIBILITY OF SUCH DAMAGE.                                                         
00028  *                                                                                     
00029  * Author: Melonee Wise                                                                
00030  */
00031 
00032 
00033 #include <ros/ros.h>
00034 #include <gtest/gtest.h>
00035 #include <boost/thread.hpp>
00036 #include <actionlib/client/simple_action_client.h>
00037 #include <pr2_plugs_msgs/DetectPlugInGripperAction.h>
00038 #include <pr2_plugs_msgs/VisionPlugDetectionAction.h>
00039 #include <pr2_controllers_msgs/JointTrajectoryAction.h>
00040 #include <actionlib/server/simple_action_server.h>
00041 
00042 
00043 void spinThread()
00044 {
00045   ros::spin();
00046 }
00047 
00048 void arm_execute(const pr2_controllers_msgs::JointTrajectoryGoalConstPtr& goal, actionlib::SimpleActionServer<pr2_controllers_msgs::JointTrajectoryAction>* as)
00049 {
00050   as->setSucceeded();
00051 }
00052 
00053 void plug_execute(const pr2_plugs_msgs::VisionPlugDetectionGoalConstPtr& goal, actionlib::SimpleActionServer<pr2_plugs_msgs::VisionPlugDetectionAction>* as)
00054 {
00055   as->setSucceeded();
00056 }
00057 
00058 
00059 TEST(ActionServerTest, detect_plug)
00060 {
00061   ros::NodeHandle n;
00062   actionlib::SimpleActionServer<pr2_controllers_msgs::JointTrajectoryAction> arm_server(n, "r_arm_controller/joint_trajectory_generator", boost::bind(&arm_execute, _1, &arm_server), false);
00063   actionlib::SimpleActionServer<pr2_plugs_msgs::VisionPlugDetectionAction> plug_server(n, "vision_plug_detection", boost::bind(&plug_execute, _1, &plug_server), false);
00064   arm_server.start();
00065   plug_server.start();
00066 
00067   actionlib::SimpleActionClient<pr2_plugs_msgs::DetectPlugInGripperAction> ac("detect_plug"); 
00068 
00069   boost::thread spin_thread(&spinThread);
00070   EXPECT_TRUE(ac.waitForServer(ros::Duration(15.0)));
00071   ros::shutdown();
00072   spin_thread.join();
00073   
00074 }
00075 
00076 int main(int argc, char **argv){
00077   testing::InitGoogleTest(&argc, argv);
00078   ros::init(argc, argv, "detect_plug_tests");
00079   return RUN_ALL_TESTS();
00080 
00081 }


pr2_plugs_actions
Author(s): Jon Bohren, Patrick Mihelich, Wim Meeussen, and Melonee Wise
autogenerated on Mon Dec 2 2013 13:24:10