tue_config
sdf_gtest.cpp
Go to the documentation of this file.
3 #include <gtest/gtest.h>
4 
5 #include <ros/package.h>
6 
7 #include "tue/filesystem/path.h"
8 
10 
11 TEST(SDF, LoadSDF)
12 {
13  std::string path = ros::package::getPath("tue_config");
14  path += "/test/model.sdf";
15  EXPECT_TRUE(tue::config::loadFromSDFFile(path, config));
16  EXPECT_TRUE(config.readGroup("sdf"));
17 }
18 
19 TEST(SDF, String)
20 {
21  std::string name;
22  double nameD = 0.;
23  int nameI = 0;
24  config.readArray("model");
26  EXPECT_FALSE(config.value("name", nameD));
27  EXPECT_FALSE(config.value("name", nameI));
28  EXPECT_TRUE(config.value("name", name));
29  config.endArray();
30  EXPECT_STREQ("robotics_testlabs_sdf/battery_table", name.c_str());
31 }
32 
33 TEST(SDF, Double)
34 {
35  double version = 0.;
36  int versionI = 0;
37  std::string versionS = "";
38  EXPECT_FALSE(config.value("version", versionI));
39  EXPECT_FALSE(config.value("version", versionS));
40  EXPECT_TRUE(config.value("version", version));
41  EXPECT_DOUBLE_EQ(1.6, version);
42 }
43 
44 TEST(SDF, readArray)
45 {
46  EXPECT_FALSE(config.readGroup("model"));
47  EXPECT_TRUE(config.readArray("model"));
48  EXPECT_TRUE(config.nextArrayItem());
49  EXPECT_TRUE(config.endArray());
50 }
51 
52 
53 TEST(SDF, Int)
54 {
55  config.readArray("model");
57  config.readArray("link");
59  int linkname = 0;
60  double linknameD = 0.;
61  std::string linknameS = "";
62  EXPECT_TRUE(config.value("name", linknameD));
63  EXPECT_FALSE(config.value("name", linknameS));
64  EXPECT_TRUE(config.value("name", linkname));
65  EXPECT_TRUE(config.endArray());
66 }
67 
68 
69 
70 // Run all the tests that were declared with TEST()
71 int main(int argc, char **argv)
72 {
73  testing::InitGoogleTest(&argc, argv);
74  return RUN_ALL_TESTS();
75 }
std::string
tue::config::ReaderWriter::readArray
bool readArray(const std::string &name, const RequiredOrOptional opt=OPTIONAL)
readArray read the child with key 'name', which should be an array
Definition: reader_writer.h:84
tue::config::ReaderWriter
Definition: reader_writer.h:26
std::string::c_str
T c_str(T... args)
TEST
TEST(SDF, LoadSDF)
Definition: sdf_gtest.cpp:11
tue::config::loadFromSDFFile
bool loadFromSDFFile(const std::string &filename, ReaderWriter &config)
loadFromSDFFile loads a sdf file into a ReaderWriter class
Definition: sdf.cpp:188
reader_writer.h
tue::config::ReaderWriter::endArray
bool endArray()
endArray go to parrent of current array, wrapping end() for readibility
Definition: reader_writer.h:98
main
int main(int argc, char **argv)
Definition: sdf_gtest.cpp:71
tue::config::ReaderWriter::value
bool value(const std::string &name, T &value, RequiredOrOptional opt=REQUIRED)
value read value of child with key 'name'
Definition: reader_writer.h:47
path.h
tue::config::ReaderWriter::readGroup
bool readGroup(const std::string &name, const RequiredOrOptional opt=OPTIONAL)
readGroup read the child with key 'name', which should be a group
Definition: reader_writer.h:92
sdf.h
tue::config::ReaderWriter::nextArrayItem
bool nextArrayItem()
nextArrayItem go to the next item in the array, wrapping next() for readbility
Definition: reader_writer.h:110
config
tue::config::ReaderWriter config
Definition: sdf_gtest.cpp:9