detect_wall_norm_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/DetectWallNormAction.h>
00038 #include <actionlib/server/simple_action_server.h>
00039 #include <stereo_wall_detection/DetectWall.h>
00040 #include <dynamic_reconfigure/Reconfigure.h>
00041 #include <pr2_controllers_msgs/PointHeadAction.h>
00042 
00043 
00044 void spinThread()
00045 {
00046   ros::spin();
00047 }
00048 
00049 bool set_param (dynamic_reconfigure::Reconfigure::Request &req, dynamic_reconfigure::Reconfigure::Response &resp)
00050 {
00051   return true;
00052 }
00053 
00054 void head_execute(const pr2_controllers_msgs::PointHeadGoalConstPtr& goal, actionlib::SimpleActionServer<pr2_controllers_msgs::PointHeadAction>* as)
00055 {
00056   as->setSucceeded();
00057 }
00058 
00059 bool detect_wall (stereo_wall_detection::DetectWall::Request &req, stereo_wall_detection::DetectWall::Response &resp)
00060 {
00061   return true;
00062 }
00063 
00064 TEST(ActionServerTest, detect_wall_norm)
00065 {
00066   ros::NodeHandle n;
00067   boost::thread spin_thread(&spinThread);
00068   
00069   ros::ServiceServer wall_serv = n.advertiseService ("stereo_wall_detection/detect_wall", detect_wall);
00070   ros::ServiceServer param_serv = n.advertiseService ("camera_synchronizer_node/set_parameters", set_param);
00071   actionlib::SimpleActionServer<pr2_controllers_msgs::PointHeadAction> head_server(n, "head_traj_controller/point_head_action", boost::bind(&head_execute, _1, &head_server), false);
00072   head_server.start();
00073 
00074   actionlib::SimpleActionClient<pr2_plugs_msgs::DetectWallNormAction> ac("detect_wall_norm"); 
00075 
00076 
00077   EXPECT_TRUE(ac.waitForServer(ros::Duration(15.0)));
00078   ros::shutdown();
00079   spin_thread.join();
00080   
00081 }
00082 
00083 int main(int argc, char **argv){
00084   testing::InitGoogleTest(&argc, argv);
00085   ros::init(argc, argv, "detect_wall_norm_tests");
00086   return RUN_ALL_TESTS();
00087 
00088 }


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