PropertiesTests.cpp
Go to the documentation of this file.
1 // -*- C++ -*-
13 /*
14  * $Log: PropertiesTests.cpp,v $
15  * Revision 1.3 2008/01/09 04:12:46 arafune
16  * *** empty log message ***
17  *
18  * Revision 1.2 2008/01/08 07:53:11 arafune
19  * *** empty log message ***
20  *
21  * Revision 1.1 2007/12/20 07:50:18 arafune
22  * *** empty log message ***
23  *
24  * Revision 1.1 2006/11/27 08:23:25 n-ando
25  * TestSuites are devided into each directory.
26  *
27  * Revision 1.3 2006/10/18 05:59:55 kurihara
28  *
29  * test_list(),test_load(),test_store() added and It is a revision generally.
30  *
31  */
32 
33 #ifndef Properties_cpp
34 #define Properties_cpp
35 
36 #include <cppunit/ui/text/TestRunner.h>
37 #include <cppunit/TextOutputter.h>
38 #include <cppunit/extensions/TestFactoryRegistry.h>
39 #include <cppunit/extensions/HelperMacros.h>
40 #include <cppunit/TestAssert.h>
41 #include <fstream>
42 #include <coil/Properties.h>
43 #include <algorithm>
44 
49 using namespace std;
50 
51 typedef std::map<std::string, std::string>::iterator Itr;
52 
53 namespace Properties
54 {
56  : public CppUnit::TestFixture
57  {
58  CPPUNIT_TEST_SUITE(PropertiesTests);
59 
60  CPPUNIT_TEST(test_ctor_map);
61  CPPUNIT_TEST(test_Properties_key_value);
62  CPPUNIT_TEST(test_Properties_char);
63  CPPUNIT_TEST(test_Properties_copy);
64  CPPUNIT_TEST(test_Properties_destructor);
65  CPPUNIT_TEST(test_substitute);
66  CPPUNIT_TEST(test_Properties_destructor);
67 
68  CPPUNIT_TEST(test_getName);
69  CPPUNIT_TEST(test_getValue);
70  CPPUNIT_TEST(test_getDefaultValue);
71  CPPUNIT_TEST(test_getLeaf);
72  CPPUNIT_TEST(test_getRoot);
73 
74  CPPUNIT_TEST(test_getProperty);
75  CPPUNIT_TEST(test_getDefault);
76  CPPUNIT_TEST(test_setProperty);
77  CPPUNIT_TEST(test_setDefaults);
78 
79  CPPUNIT_TEST(test_list);
80  CPPUNIT_TEST(test_load);
81  CPPUNIT_TEST(test_store);
82 
83  CPPUNIT_TEST(test_propertyNames);
84  CPPUNIT_TEST(test_size);
85  CPPUNIT_TEST(test_findNode);
86  CPPUNIT_TEST(test_getNode);
87  CPPUNIT_TEST(test_createNode);
88  CPPUNIT_TEST(test_removeNode);
89  CPPUNIT_TEST(test_hasKey);
90  CPPUNIT_TEST(test_clear);
91  CPPUNIT_TEST(test_streamInput);
92  CPPUNIT_TEST(test_splitKeyValue);
93 
94 
95 
96  CPPUNIT_TEST_SUITE_END();
97 
98  private:
99  string EMPTY_STRING;
100  map<string, string> DEFAULTS_CONF;
101 
102 // RTC::Properties* m_prop;
104 
105  public:
110  {
111  }
112 
117  {
118  }
119 
123  virtual void setUp()
124  {
125  EMPTY_STRING = "";
126 
127  DEFAULTS_CONF["rtc.openrtm.version"] = "0.4.0";
128  DEFAULTS_CONF["rtc.openrtm.release"] = "aist";
129  DEFAULTS_CONF["rtc.openrtm.vendor"] = "AIST";
130  DEFAULTS_CONF["rtc.openrtm.author"] = "Noriaki Ando";
131  DEFAULTS_CONF["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
132  DEFAULTS_CONF["rtc.manager.debug.level"] = "PARANOID";
133  DEFAULTS_CONF["rtc.manager.orb"] = "omniORB";
134  DEFAULTS_CONF["rtc.manager.orb.options"] =
135  "IIOPAddrPort, -ORBendPoint, giop:tcp:";
136  DEFAULTS_CONF["rtc.manager.arch"] = "i386";
137  DEFAULTS_CONF["rtc.manager.os"] = "FreeBSD";
138  DEFAULTS_CONF["rtc.manager.os.release"] = "6.1-RELEASE";
139  DEFAULTS_CONF["rtc.manager.language"] = "C++";
140  DEFAULTS_CONF["rtc.manager.subsystems"] =
141  "Camera, Manipulator, Force Sensor";
142  DEFAULTS_CONF["rtc.component.conf.path"] =
143  "C:\\\\Program\\\\ Files\\\\OpenRTM-aist";
144  DEFAULTS_CONF["rtc.manager.opening_message"] = "\"Hello \" World\"";
145  }
146 
150  virtual void tearDown()
151  {
152  }
153 
154 
163  {
164  /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
165  string value("test");
166 
167  /*
168  // �ץ��ѥƥ���̾�Τ��ͤ������󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� // (1) �������ز����ʤ��ǥƥ��� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); string retval(prop0.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); /* // (2) �������ز����ƥƥ��� */ string key1("manager.test.test"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey = prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); retval = prop1.getValue(); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief Properties(std::map<string, string>&)���󥹥ȥ饯���Υƥ��� * * <ul> * <li>std::map�ǻ��ꤷ���ǥե�����ͤ����ǥե�����ͤȤ����������� * ������뤫��</li> * </ul> */ void test_ctor_map() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯 */ /* ���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ map<string, string>::iterator it; it = defaults.begin(); for (; it != defaults.end(); ++it) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } void test_Properties_char() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief Properties(const Properties& prop)���ԡ����󥹥ȥ饯���Υƥ��� * * <ul> * <li>prop�ǻ��ꤷ���ǥե�����ͤ������ԡ����֥������Ȥ�����������������뤫��</li> * </ul> */ void test_Properties_copy() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); coil::Properties cprop(prop); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (map<string, string>::iterator it = defaults.begin(); it != defaults.end(); it++) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, cprop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, cprop.getProperty(key)); } } /*! * @brief ~Properties(void)�ǥ��ȥ饯���Υƥ��� * * <ul> * <li>�ǥ��ȥ饯���ˤ�ꥪ�֥������Ȥ���ǡ������������������뤫��</li> * </ul> */ void test_Properties_destructor() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); std::vector<coil::Properties*> leaf0(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf0.size() == 3); /* rtc.manager�Ρ��ɤ������� */ delete &prop.getNode("rtc.manager"); /* rtc�Ρ��ɤ���manager���������Ƥ�������ǧ���롣*/ std::vector<coil::Properties*> leaf1(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf1.size() == 2); std::string getval(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT("" == getval); } /*! * @brief =�黻�ҡ������黻�ҡˤΥƥ��� * * <ul> * <li>�ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ�����ˡ������ξ * ������������������뤫��</li> * <li>�ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� * �ˡ������ξ������������������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� * �ˡ������ξ������������������뤫��</li> * </ul> */ void test_substitute() { /* �������Ȥʤ�Properties��������� */ coil::Properties propSrc; /* (1) �ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ����� */ string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; propSrc.setDefault(key1, key1DefaultValue); propSrc.setProperty(key1, key1Value); /* (2) �ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� */ string key2 = "key2"; string key2DefaultValue = "key2-default-value"; propSrc.setDefault(key2, key2DefaultValue); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� */ string key3 = "key3"; string key3Value = "key3-value"; propSrc.setProperty(key3, key3Value); /* ������Ԥ������줾��ξ��ǡ��������������줿���Ȥ��ǧ���� */ coil::Properties prop; prop = propSrc; CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); CPPUNIT_ASSERT_EQUAL(key1Value, prop.getProperty(key1)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getProperty(key2)); CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); CPPUNIT_ASSERT_EQUAL(key3Value, prop.getProperty(key3)); } /*! * @brief getProperty()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ץ� * �ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫��</li> * </ul> */ void test_getProperty() { coil::Properties prop; prop.setDefault("property_1", "default_1"); prop.setProperty("property_1", "value_1"); prop.setDefault("property_2", "default_2"); prop.setProperty("property_3", "value_3"); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_1 = "value_1"; CPPUNIT_ASSERT_EQUAL(expected_1, prop.getProperty("property_1")); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /*/ ���ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫�� */ string expected_2 = "default_2"; CPPUNIT_ASSERT_EQUAL(expected_2, prop.getProperty("property_2")); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_3 = "value_3"; CPPUNIT_ASSERT_EQUAL(expected_3, prop.getProperty("property_3")); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* ���ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫�� */ string expected_4 = ""; CPPUNIT_ASSERT_EQUAL(expected_4, prop.getProperty("property_4")); } /*! * @brief getDefault()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ǥե� * ����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * </ul> */ void test_getDefault() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* �ե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(keyNonExist)); } /*! * @brief setProperty()�᥽�åɤΥƥ��� * * <ul> * <li>������˻��ꤷ���ͤ������������ꤵ��뤫��</li> * <li>�����������ͤȤ��ơ����������ͤ���������������뤫��</li> * </ul> */ void test_setProperty() { string key = "key"; string oldValue = "old-value"; string newValue = "new-value"; coil::Properties prop; prop.setProperty(key, oldValue); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.getProperty(key)); /* (2) �����������ͤȤ��ơ����������ͤ���������������뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.setProperty(key, newValue)); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫���ʤ��Σ��� */ CPPUNIT_ASSERT_EQUAL(newValue, prop.getProperty(key)); } /*! * @brief list()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_list() { coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); std::ofstream outFile("listed.conf"); prop.list(outFile); outFile.close(); vector<string> expectedLines; expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); vector<string> storedLines; std::ifstream inFile("listed.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief load()�᥽�åɤΥƥ��� * <ul> * * <li>�ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ������� * �ɤ߹���뤫��</li> * * </ul> */ void test_load() { /* �ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ��ɤ߹��� */ coil::Properties prop; std::ifstream ifl("defaults.conf"); prop.load(ifl); ifl.close(); /* �����ͤ���Ӥ��ơ��������ɤ߹��ޤ줿���Ȥ��ǧ���� */ map<string, string>::iterator expected; for (expected = DEFAULTS_CONF.begin(); expected != DEFAULTS_CONF.end(); expected++) { string key = expected->first; string value = expected->second; CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief store()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>���ꤷ���إå�ʸ���󤬡����������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_store() { /* �ƥ����ѤΥץ��ѥƥ������ꤹ�� */ coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); prop.setProperty("hello", "\tHello\t"); std::ofstream outFile("stored.conf"); prop.store(outFile, "stored data"); outFile.close(); /* ��ӤΤ���δ����ͤ�������� */ vector<string> expectedLines; expectedLines.push_back("# stored data"); expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); expectedLines.push_back("hello: \\tHello\\t"); /* ���Ϥ��줿�ե��������Ȥ򣱹ԤŤ��ɤ߹��� */ vector<string> storedLines; std::ifstream inFile("stored.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief propertyNames()�᥽�åɤΥƥ��� * * <ul> * * <li>�̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤵ��Ƥ���ץ��� * �ƥ��ˤĤ��ơ�����̾����������뤫��</li> * * <li>�̾�Υץ��ѥƥ��ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ����� * ̾����������뤫��</li> * * <li>�ǥե�����ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ�����̾�� * ��������뤫��</li> * * </ul> */ void test_propertyNames() { coil::Properties prop; /* (1) �̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤹ�� */ prop.setProperty("property_01", "value_01"); prop.setDefault("property_01", "default_01"); /* (2) �̾�Υץ��ѥƥ��ͤΤߤ����ꤹ�� */ prop.setProperty("property_02", "value_02"); /* (3) �ǥե�����ͤΤߤ����ꤹ�� */ prop.setDefault("property_03", "default_03"); /* (1),(2),(3)������ξ��ˤĤ��Ƥ⥭��̾����������뤳�Ȥ��ǧ���� */ vector<string> keys = prop.propertyNames(); CPPUNIT_ASSERT_EQUAL(3, (int) keys.size()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_01") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_02") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_03") != keys.end()); } /*! * @brief getName(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ���̾�Τ���������������뤫��</li> * </ul> */ void test_getName() { string value("test"); /* (1) �������ز����Ƥ��ʤ���� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); /* (1) �������ز�������� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key1("manager.hoge"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey= prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); } /*! * @brief getValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getValue() { /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key("manager"); string value("test.test"); coil::Properties prop(key.c_str(),value.c_str()); /* ���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������뤳�Ȥ��ǧ���� */ string retval(prop.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getDefaultValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>setDefault�ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getDefaultValue() { coil::Properties prop; string key("property_1"); string value("default_1"); /* �ǥե�����ͤ����ꤹ�� */ prop.setDefault(key.c_str(), value.c_str()); /* �ǥե�����ͤ�������� */ string retval(prop.getNode(key.c_str()).getDefaultValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getLeaf(void)�᥽�åɤΥƥ��� * * <ul> * <li>getLeaf�ǻ����Ǥ���������������뤫��</li> * </ul> */ void test_getLeaf() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǻ����Ǥ���� */ std::vector<coil::Properties*> leaf(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf[1]->getProperty("arch") == "i386"); CPPUNIT_ASSERT(leaf[1]->getProperty("debug.level") == "PARANOID"); } /*! * @brief getRoot(void)�᥽�åɤΥƥ��� * * <ul> * <li>getRoot�ǥ롼�����Ǥ���������������뤫��</li> * </ul> */ void test_getRoot() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǥ롼�����Ǥ���� */ const coil::Properties* root(prop.getNode("rtc.manager.os").getRoot()); CPPUNIT_ASSERT(root->getProperty("arch") == "i386"); CPPUNIT_ASSERT(root->getProperty("debug.level") == "PARANOID"); } /*! * @brief operator[]()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤵ�줿��������ĥץ��ѥƥ��򡢥ץ��ѥƥ��ꥹ�Ȥ���õ���뤫��</li> * </ul> */ void test_operator() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; // const std::string& // Properties::operator[](const std::string& key) const // �Υƥ��� const coil::Properties prop0(defaults); const string& retval0(prop0["rtc.manager.arch"]); CPPUNIT_ASSERT(retval0 == "i386"); // std::string& // Properties::operator[](const std::string& key) // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
169  // (1) �������ز����ʤ��ǥƥ��� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); string retval(prop0.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); /* // (2) �������ز����ƥƥ��� */ string key1("manager.test.test"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey = prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); retval = prop1.getValue(); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief Properties(std::map<string, string>&)���󥹥ȥ饯���Υƥ��� * * <ul> * <li>std::map�ǻ��ꤷ���ǥե�����ͤ����ǥե�����ͤȤ����������� * ������뤫��</li> * </ul> */ void test_ctor_map() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯 */ /* ���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ map<string, string>::iterator it; it = defaults.begin(); for (; it != defaults.end(); ++it) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } void test_Properties_char() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief Properties(const Properties& prop)���ԡ����󥹥ȥ饯���Υƥ��� * * <ul> * <li>prop�ǻ��ꤷ���ǥե�����ͤ������ԡ����֥������Ȥ�����������������뤫��</li> * </ul> */ void test_Properties_copy() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); coil::Properties cprop(prop); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (map<string, string>::iterator it = defaults.begin(); it != defaults.end(); it++) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, cprop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, cprop.getProperty(key)); } } /*! * @brief ~Properties(void)�ǥ��ȥ饯���Υƥ��� * * <ul> * <li>�ǥ��ȥ饯���ˤ�ꥪ�֥������Ȥ���ǡ������������������뤫��</li> * </ul> */ void test_Properties_destructor() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); std::vector<coil::Properties*> leaf0(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf0.size() == 3); /* rtc.manager�Ρ��ɤ������� */ delete &prop.getNode("rtc.manager"); /* rtc�Ρ��ɤ���manager���������Ƥ�������ǧ���롣*/ std::vector<coil::Properties*> leaf1(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf1.size() == 2); std::string getval(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT("" == getval); } /*! * @brief =�黻�ҡ������黻�ҡˤΥƥ��� * * <ul> * <li>�ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ�����ˡ������ξ * ������������������뤫��</li> * <li>�ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� * �ˡ������ξ������������������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� * �ˡ������ξ������������������뤫��</li> * </ul> */ void test_substitute() { /* �������Ȥʤ�Properties��������� */ coil::Properties propSrc; /* (1) �ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ����� */ string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; propSrc.setDefault(key1, key1DefaultValue); propSrc.setProperty(key1, key1Value); /* (2) �ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� */ string key2 = "key2"; string key2DefaultValue = "key2-default-value"; propSrc.setDefault(key2, key2DefaultValue); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� */ string key3 = "key3"; string key3Value = "key3-value"; propSrc.setProperty(key3, key3Value); /* ������Ԥ������줾��ξ��ǡ��������������줿���Ȥ��ǧ���� */ coil::Properties prop; prop = propSrc; CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); CPPUNIT_ASSERT_EQUAL(key1Value, prop.getProperty(key1)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getProperty(key2)); CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); CPPUNIT_ASSERT_EQUAL(key3Value, prop.getProperty(key3)); } /*! * @brief getProperty()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ץ� * �ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫��</li> * </ul> */ void test_getProperty() { coil::Properties prop; prop.setDefault("property_1", "default_1"); prop.setProperty("property_1", "value_1"); prop.setDefault("property_2", "default_2"); prop.setProperty("property_3", "value_3"); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_1 = "value_1"; CPPUNIT_ASSERT_EQUAL(expected_1, prop.getProperty("property_1")); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /*/ ���ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫�� */ string expected_2 = "default_2"; CPPUNIT_ASSERT_EQUAL(expected_2, prop.getProperty("property_2")); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_3 = "value_3"; CPPUNIT_ASSERT_EQUAL(expected_3, prop.getProperty("property_3")); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* ���ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫�� */ string expected_4 = ""; CPPUNIT_ASSERT_EQUAL(expected_4, prop.getProperty("property_4")); } /*! * @brief getDefault()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ǥե� * ����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * </ul> */ void test_getDefault() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* �ե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(keyNonExist)); } /*! * @brief setProperty()�᥽�åɤΥƥ��� * * <ul> * <li>������˻��ꤷ���ͤ������������ꤵ��뤫��</li> * <li>�����������ͤȤ��ơ����������ͤ���������������뤫��</li> * </ul> */ void test_setProperty() { string key = "key"; string oldValue = "old-value"; string newValue = "new-value"; coil::Properties prop; prop.setProperty(key, oldValue); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.getProperty(key)); /* (2) �����������ͤȤ��ơ����������ͤ���������������뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.setProperty(key, newValue)); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫���ʤ��Σ��� */ CPPUNIT_ASSERT_EQUAL(newValue, prop.getProperty(key)); } /*! * @brief list()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_list() { coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); std::ofstream outFile("listed.conf"); prop.list(outFile); outFile.close(); vector<string> expectedLines; expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); vector<string> storedLines; std::ifstream inFile("listed.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief load()�᥽�åɤΥƥ��� * <ul> * * <li>�ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ������� * �ɤ߹���뤫��</li> * * </ul> */ void test_load() { /* �ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ��ɤ߹��� */ coil::Properties prop; std::ifstream ifl("defaults.conf"); prop.load(ifl); ifl.close(); /* �����ͤ���Ӥ��ơ��������ɤ߹��ޤ줿���Ȥ��ǧ���� */ map<string, string>::iterator expected; for (expected = DEFAULTS_CONF.begin(); expected != DEFAULTS_CONF.end(); expected++) { string key = expected->first; string value = expected->second; CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief store()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>���ꤷ���إå�ʸ���󤬡����������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_store() { /* �ƥ����ѤΥץ��ѥƥ������ꤹ�� */ coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); prop.setProperty("hello", "\tHello\t"); std::ofstream outFile("stored.conf"); prop.store(outFile, "stored data"); outFile.close(); /* ��ӤΤ���δ����ͤ�������� */ vector<string> expectedLines; expectedLines.push_back("# stored data"); expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); expectedLines.push_back("hello: \\tHello\\t"); /* ���Ϥ��줿�ե��������Ȥ򣱹ԤŤ��ɤ߹��� */ vector<string> storedLines; std::ifstream inFile("stored.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief propertyNames()�᥽�åɤΥƥ��� * * <ul> * * <li>�̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤵ��Ƥ���ץ��� * �ƥ��ˤĤ��ơ�����̾����������뤫��</li> * * <li>�̾�Υץ��ѥƥ��ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ����� * ̾����������뤫��</li> * * <li>�ǥե�����ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ�����̾�� * ��������뤫��</li> * * </ul> */ void test_propertyNames() { coil::Properties prop; /* (1) �̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤹ�� */ prop.setProperty("property_01", "value_01"); prop.setDefault("property_01", "default_01"); /* (2) �̾�Υץ��ѥƥ��ͤΤߤ����ꤹ�� */ prop.setProperty("property_02", "value_02"); /* (3) �ǥե�����ͤΤߤ����ꤹ�� */ prop.setDefault("property_03", "default_03"); /* (1),(2),(3)������ξ��ˤĤ��Ƥ⥭��̾����������뤳�Ȥ��ǧ���� */ vector<string> keys = prop.propertyNames(); CPPUNIT_ASSERT_EQUAL(3, (int) keys.size()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_01") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_02") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_03") != keys.end()); } /*! * @brief getName(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ���̾�Τ���������������뤫��</li> * </ul> */ void test_getName() { string value("test"); /* (1) �������ز����Ƥ��ʤ���� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); /* (1) �������ز�������� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key1("manager.hoge"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey= prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); } /*! * @brief getValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getValue() { /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key("manager"); string value("test.test"); coil::Properties prop(key.c_str(),value.c_str()); /* ���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������뤳�Ȥ��ǧ���� */ string retval(prop.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getDefaultValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>setDefault�ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getDefaultValue() { coil::Properties prop; string key("property_1"); string value("default_1"); /* �ǥե�����ͤ����ꤹ�� */ prop.setDefault(key.c_str(), value.c_str()); /* �ǥե�����ͤ�������� */ string retval(prop.getNode(key.c_str()).getDefaultValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getLeaf(void)�᥽�åɤΥƥ��� * * <ul> * <li>getLeaf�ǻ����Ǥ���������������뤫��</li> * </ul> */ void test_getLeaf() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǻ����Ǥ���� */ std::vector<coil::Properties*> leaf(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf[1]->getProperty("arch") == "i386"); CPPUNIT_ASSERT(leaf[1]->getProperty("debug.level") == "PARANOID"); } /*! * @brief getRoot(void)�᥽�åɤΥƥ��� * * <ul> * <li>getRoot�ǥ롼�����Ǥ���������������뤫��</li> * </ul> */ void test_getRoot() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǥ롼�����Ǥ���� */ const coil::Properties* root(prop.getNode("rtc.manager.os").getRoot()); CPPUNIT_ASSERT(root->getProperty("arch") == "i386"); CPPUNIT_ASSERT(root->getProperty("debug.level") == "PARANOID"); } /*! * @brief operator[]()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤵ�줿��������ĥץ��ѥƥ��򡢥ץ��ѥƥ��ꥹ�Ȥ���õ���뤫��</li> * </ul> */ void test_operator() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; // const std::string& // Properties::operator[](const std::string& key) const // �Υƥ��� const coil::Properties prop0(defaults); const string& retval0(prop0["rtc.manager.arch"]); CPPUNIT_ASSERT(retval0 == "i386"); // std::string& // Properties::operator[](const std::string& key) // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
170  */
171  string key0("manager");
172  coil::Properties prop0(key0.c_str(),value.c_str());
173  string retkey(prop0.getName());
174  CPPUNIT_ASSERT_EQUAL(key0, retkey);
175  string retval(prop0.getValue());
176  CPPUNIT_ASSERT_EQUAL(value, retval);
177 
178 
179  /*
180  // (2) �������ز����ƥƥ��� */ string key1("manager.test.test"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey = prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); retval = prop1.getValue(); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief Properties(std::map<string, string>&)���󥹥ȥ饯���Υƥ��� * * <ul> * <li>std::map�ǻ��ꤷ���ǥե�����ͤ����ǥե�����ͤȤ����������� * ������뤫��</li> * </ul> */ void test_ctor_map() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯 */ /* ���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ map<string, string>::iterator it; it = defaults.begin(); for (; it != defaults.end(); ++it) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } void test_Properties_char() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief Properties(const Properties& prop)���ԡ����󥹥ȥ饯���Υƥ��� * * <ul> * <li>prop�ǻ��ꤷ���ǥե�����ͤ������ԡ����֥������Ȥ�����������������뤫��</li> * </ul> */ void test_Properties_copy() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); coil::Properties cprop(prop); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (map<string, string>::iterator it = defaults.begin(); it != defaults.end(); it++) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, cprop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, cprop.getProperty(key)); } } /*! * @brief ~Properties(void)�ǥ��ȥ饯���Υƥ��� * * <ul> * <li>�ǥ��ȥ饯���ˤ�ꥪ�֥������Ȥ���ǡ������������������뤫��</li> * </ul> */ void test_Properties_destructor() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); std::vector<coil::Properties*> leaf0(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf0.size() == 3); /* rtc.manager�Ρ��ɤ������� */ delete &prop.getNode("rtc.manager"); /* rtc�Ρ��ɤ���manager���������Ƥ�������ǧ���롣*/ std::vector<coil::Properties*> leaf1(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf1.size() == 2); std::string getval(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT("" == getval); } /*! * @brief =�黻�ҡ������黻�ҡˤΥƥ��� * * <ul> * <li>�ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ�����ˡ������ξ * ������������������뤫��</li> * <li>�ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� * �ˡ������ξ������������������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� * �ˡ������ξ������������������뤫��</li> * </ul> */ void test_substitute() { /* �������Ȥʤ�Properties��������� */ coil::Properties propSrc; /* (1) �ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ����� */ string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; propSrc.setDefault(key1, key1DefaultValue); propSrc.setProperty(key1, key1Value); /* (2) �ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� */ string key2 = "key2"; string key2DefaultValue = "key2-default-value"; propSrc.setDefault(key2, key2DefaultValue); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� */ string key3 = "key3"; string key3Value = "key3-value"; propSrc.setProperty(key3, key3Value); /* ������Ԥ������줾��ξ��ǡ��������������줿���Ȥ��ǧ���� */ coil::Properties prop; prop = propSrc; CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); CPPUNIT_ASSERT_EQUAL(key1Value, prop.getProperty(key1)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getProperty(key2)); CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); CPPUNIT_ASSERT_EQUAL(key3Value, prop.getProperty(key3)); } /*! * @brief getProperty()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ץ� * �ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫��</li> * </ul> */ void test_getProperty() { coil::Properties prop; prop.setDefault("property_1", "default_1"); prop.setProperty("property_1", "value_1"); prop.setDefault("property_2", "default_2"); prop.setProperty("property_3", "value_3"); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_1 = "value_1"; CPPUNIT_ASSERT_EQUAL(expected_1, prop.getProperty("property_1")); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /*/ ���ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫�� */ string expected_2 = "default_2"; CPPUNIT_ASSERT_EQUAL(expected_2, prop.getProperty("property_2")); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_3 = "value_3"; CPPUNIT_ASSERT_EQUAL(expected_3, prop.getProperty("property_3")); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* ���ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫�� */ string expected_4 = ""; CPPUNIT_ASSERT_EQUAL(expected_4, prop.getProperty("property_4")); } /*! * @brief getDefault()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ǥե� * ����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * </ul> */ void test_getDefault() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* �ե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(keyNonExist)); } /*! * @brief setProperty()�᥽�åɤΥƥ��� * * <ul> * <li>������˻��ꤷ���ͤ������������ꤵ��뤫��</li> * <li>�����������ͤȤ��ơ����������ͤ���������������뤫��</li> * </ul> */ void test_setProperty() { string key = "key"; string oldValue = "old-value"; string newValue = "new-value"; coil::Properties prop; prop.setProperty(key, oldValue); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.getProperty(key)); /* (2) �����������ͤȤ��ơ����������ͤ���������������뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.setProperty(key, newValue)); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫���ʤ��Σ��� */ CPPUNIT_ASSERT_EQUAL(newValue, prop.getProperty(key)); } /*! * @brief list()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_list() { coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); std::ofstream outFile("listed.conf"); prop.list(outFile); outFile.close(); vector<string> expectedLines; expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); vector<string> storedLines; std::ifstream inFile("listed.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief load()�᥽�åɤΥƥ��� * <ul> * * <li>�ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ������� * �ɤ߹���뤫��</li> * * </ul> */ void test_load() { /* �ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ��ɤ߹��� */ coil::Properties prop; std::ifstream ifl("defaults.conf"); prop.load(ifl); ifl.close(); /* �����ͤ���Ӥ��ơ��������ɤ߹��ޤ줿���Ȥ��ǧ���� */ map<string, string>::iterator expected; for (expected = DEFAULTS_CONF.begin(); expected != DEFAULTS_CONF.end(); expected++) { string key = expected->first; string value = expected->second; CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief store()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>���ꤷ���إå�ʸ���󤬡����������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_store() { /* �ƥ����ѤΥץ��ѥƥ������ꤹ�� */ coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); prop.setProperty("hello", "\tHello\t"); std::ofstream outFile("stored.conf"); prop.store(outFile, "stored data"); outFile.close(); /* ��ӤΤ���δ����ͤ�������� */ vector<string> expectedLines; expectedLines.push_back("# stored data"); expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); expectedLines.push_back("hello: \\tHello\\t"); /* ���Ϥ��줿�ե��������Ȥ򣱹ԤŤ��ɤ߹��� */ vector<string> storedLines; std::ifstream inFile("stored.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief propertyNames()�᥽�åɤΥƥ��� * * <ul> * * <li>�̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤵ��Ƥ���ץ��� * �ƥ��ˤĤ��ơ�����̾����������뤫��</li> * * <li>�̾�Υץ��ѥƥ��ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ����� * ̾����������뤫��</li> * * <li>�ǥե�����ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ�����̾�� * ��������뤫��</li> * * </ul> */ void test_propertyNames() { coil::Properties prop; /* (1) �̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤹ�� */ prop.setProperty("property_01", "value_01"); prop.setDefault("property_01", "default_01"); /* (2) �̾�Υץ��ѥƥ��ͤΤߤ����ꤹ�� */ prop.setProperty("property_02", "value_02"); /* (3) �ǥե�����ͤΤߤ����ꤹ�� */ prop.setDefault("property_03", "default_03"); /* (1),(2),(3)������ξ��ˤĤ��Ƥ⥭��̾����������뤳�Ȥ��ǧ���� */ vector<string> keys = prop.propertyNames(); CPPUNIT_ASSERT_EQUAL(3, (int) keys.size()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_01") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_02") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_03") != keys.end()); } /*! * @brief getName(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ���̾�Τ���������������뤫��</li> * </ul> */ void test_getName() { string value("test"); /* (1) �������ز����Ƥ��ʤ���� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); /* (1) �������ز�������� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key1("manager.hoge"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey= prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); } /*! * @brief getValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getValue() { /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key("manager"); string value("test.test"); coil::Properties prop(key.c_str(),value.c_str()); /* ���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������뤳�Ȥ��ǧ���� */ string retval(prop.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getDefaultValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>setDefault�ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getDefaultValue() { coil::Properties prop; string key("property_1"); string value("default_1"); /* �ǥե�����ͤ����ꤹ�� */ prop.setDefault(key.c_str(), value.c_str()); /* �ǥե�����ͤ�������� */ string retval(prop.getNode(key.c_str()).getDefaultValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getLeaf(void)�᥽�åɤΥƥ��� * * <ul> * <li>getLeaf�ǻ����Ǥ���������������뤫��</li> * </ul> */ void test_getLeaf() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǻ����Ǥ���� */ std::vector<coil::Properties*> leaf(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf[1]->getProperty("arch") == "i386"); CPPUNIT_ASSERT(leaf[1]->getProperty("debug.level") == "PARANOID"); } /*! * @brief getRoot(void)�᥽�åɤΥƥ��� * * <ul> * <li>getRoot�ǥ롼�����Ǥ���������������뤫��</li> * </ul> */ void test_getRoot() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǥ롼�����Ǥ���� */ const coil::Properties* root(prop.getNode("rtc.manager.os").getRoot()); CPPUNIT_ASSERT(root->getProperty("arch") == "i386"); CPPUNIT_ASSERT(root->getProperty("debug.level") == "PARANOID"); } /*! * @brief operator[]()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤵ�줿��������ĥץ��ѥƥ��򡢥ץ��ѥƥ��ꥹ�Ȥ���õ���뤫��</li> * </ul> */ void test_operator() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; // const std::string& // Properties::operator[](const std::string& key) const // �Υƥ��� const coil::Properties prop0(defaults); const string& retval0(prop0["rtc.manager.arch"]); CPPUNIT_ASSERT(retval0 == "i386"); // std::string& // Properties::operator[](const std::string& key) // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
181  */
182  string key1("manager.test.test");
183  coil::Properties prop1(key1.c_str(),value.c_str());
184 
185  retkey = prop1.getName();
186  CPPUNIT_ASSERT_EQUAL(key1, retkey);
187  retval = prop1.getValue();
188  CPPUNIT_ASSERT_EQUAL(value, retval);
189  }
190 
200  {
201  map<string, string> defaults;
202  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
203  defaults["rtc.manager.arch"] = "i386";
204  defaults["rtc.manager.debug.level"] = "PARANOID";
205  defaults["rtc.manager.language"] = "C++";
206  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
207  defaults["rtc.manager.opening_message"] = "Hello World";
208  defaults["rtc.manager.orb.name"] = "omniORB";
209  defaults["rtc.manager.orb.options"] =
210  "IIOPAddrPort, -ORBendPoint, giop:tcp:";
211  defaults["rtc.manager.os.name"] = "FreeBSD";
212  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
213  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
214  defaults["rtc.openrtm.author"] = "Noriaki Ando";
215  defaults["rtc.openrtm.release"] = "aist";
216  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
217  defaults["rtc.openrtm.version"] = "0.4.0";
218 
219  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
220  coil::Properties prop(defaults);
221 
222  /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯 */
223  /* ���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */
224  map<string, string>::iterator it;
225  it = defaults.begin();
226  for (; it != defaults.end(); ++it) {
227  string key = it->first;
228  string value = it->second;
229  CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key));
230  CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key));
231  }
232  }
233 
234 
236  {
237  const char* defaults[] = {
238  "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist",
239  "rtc.manager.arch", "i386",
240  "rtc.manager.debug.level", "PARANOID",
241  "rtc.manager.language", "C++",
242  "rtc.manager.nameserver", "zonu.a02.aist.go.jp",
243  "rtc.manager.opening_message", "Hello World",
244  "rtc.manager.orb.name", "omniORB",
245  "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:",
246  "rtc.manager.os.name", "FreeBSD",
247  "rtc.manager.os.release", "6.1-RELEASE",
248  "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor",
249  "rtc.openrtm.author", "Noriaki Ando",
250  "rtc.openrtm.release", "aist",
251  "rtc.openrtm.vendor", "AIST TaskIntelligence",
252  "rtc.openrtm.version", "0.4.0",
253  ""
254  };
255 
256  coil::Properties prop(defaults);
257  /*
258  // �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief Properties(const Properties& prop)���ԡ����󥹥ȥ饯���Υƥ��� * * <ul> * <li>prop�ǻ��ꤷ���ǥե�����ͤ������ԡ����֥������Ȥ�����������������뤫��</li> * </ul> */ void test_Properties_copy() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); coil::Properties cprop(prop); /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (map<string, string>::iterator it = defaults.begin(); it != defaults.end(); it++) { string key = it->first; string value = it->second; CPPUNIT_ASSERT_EQUAL(value, cprop.getDefault(key)); CPPUNIT_ASSERT_EQUAL(value, cprop.getProperty(key)); } } /*! * @brief ~Properties(void)�ǥ��ȥ饯���Υƥ��� * * <ul> * <li>�ǥ��ȥ饯���ˤ�ꥪ�֥������Ȥ���ǡ������������������뤫��</li> * </ul> */ void test_Properties_destructor() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); std::vector<coil::Properties*> leaf0(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf0.size() == 3); /* rtc.manager�Ρ��ɤ������� */ delete &prop.getNode("rtc.manager"); /* rtc�Ρ��ɤ���manager���������Ƥ�������ǧ���롣*/ std::vector<coil::Properties*> leaf1(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf1.size() == 2); std::string getval(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT("" == getval); } /*! * @brief =�黻�ҡ������黻�ҡˤΥƥ��� * * <ul> * <li>�ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ�����ˡ������ξ * ������������������뤫��</li> * <li>�ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� * �ˡ������ξ������������������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� * �ˡ������ξ������������������뤫��</li> * </ul> */ void test_substitute() { /* �������Ȥʤ�Properties��������� */ coil::Properties propSrc; /* (1) �ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ����� */ string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; propSrc.setDefault(key1, key1DefaultValue); propSrc.setProperty(key1, key1Value); /* (2) �ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� */ string key2 = "key2"; string key2DefaultValue = "key2-default-value"; propSrc.setDefault(key2, key2DefaultValue); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� */ string key3 = "key3"; string key3Value = "key3-value"; propSrc.setProperty(key3, key3Value); /* ������Ԥ������줾��ξ��ǡ��������������줿���Ȥ��ǧ���� */ coil::Properties prop; prop = propSrc; CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); CPPUNIT_ASSERT_EQUAL(key1Value, prop.getProperty(key1)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getProperty(key2)); CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); CPPUNIT_ASSERT_EQUAL(key3Value, prop.getProperty(key3)); } /*! * @brief getProperty()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫��</li> * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫��</li> * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ץ� * �ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫��</li> * </ul> */ void test_getProperty() { coil::Properties prop; prop.setDefault("property_1", "default_1"); prop.setProperty("property_1", "value_1"); prop.setDefault("property_2", "default_2"); prop.setProperty("property_3", "value_3"); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_1 = "value_1"; CPPUNIT_ASSERT_EQUAL(expected_1, prop.getProperty("property_1")); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /*/ ���ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫�� */ string expected_2 = "default_2"; CPPUNIT_ASSERT_EQUAL(expected_2, prop.getProperty("property_2")); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */ string expected_3 = "value_3"; CPPUNIT_ASSERT_EQUAL(expected_3, prop.getProperty("property_3")); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* ���ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫�� */ string expected_4 = ""; CPPUNIT_ASSERT_EQUAL(expected_4, prop.getProperty("property_4")); } /*! * @brief getDefault()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��ǥե� * ����ͤȤ��ƶ�ʸ���󤬼�������뤫��</li> * * </ul> */ void test_getDefault() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1)); /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */ /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */ CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2)); /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */ /* ���ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3)); /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */ /* �ե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(keyNonExist)); } /*! * @brief setProperty()�᥽�åɤΥƥ��� * * <ul> * <li>������˻��ꤷ���ͤ������������ꤵ��뤫��</li> * <li>�����������ͤȤ��ơ����������ͤ���������������뤫��</li> * </ul> */ void test_setProperty() { string key = "key"; string oldValue = "old-value"; string newValue = "new-value"; coil::Properties prop; prop.setProperty(key, oldValue); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.getProperty(key)); /* (2) �����������ͤȤ��ơ����������ͤ���������������뤫�� */ CPPUNIT_ASSERT_EQUAL(oldValue, prop.setProperty(key, newValue)); /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫���ʤ��Σ��� */ CPPUNIT_ASSERT_EQUAL(newValue, prop.getProperty(key)); } /*! * @brief list()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_list() { coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); std::ofstream outFile("listed.conf"); prop.list(outFile); outFile.close(); vector<string> expectedLines; expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); vector<string> storedLines; std::ifstream inFile("listed.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief load()�᥽�åɤΥƥ��� * <ul> * * <li>�ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ������� * �ɤ߹���뤫��</li> * * </ul> */ void test_load() { /* �ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ��ɤ߹��� */ coil::Properties prop; std::ifstream ifl("defaults.conf"); prop.load(ifl); ifl.close(); /* �����ͤ���Ӥ��ơ��������ɤ߹��ޤ줿���Ȥ��ǧ���� */ map<string, string>::iterator expected; for (expected = DEFAULTS_CONF.begin(); expected != DEFAULTS_CONF.end(); expected++) { string key = expected->first; string value = expected->second; CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key)); } } /*! * @brief store()�᥽�åɤΥƥ��� * * <ul> * * <li>���ꤵ��Ƥ���ץ��ѥƥ��ͤ������������Ϥ���뤫��</li> * * <li>���ꤷ���إå�ʸ���󤬡����������Ϥ���뤫��</li> * * <li>\�ʥХå�����å���ˤ�ޤ��ͤ������������������׽�������� * ���Ϥ���뤫��</li> * * </ul> */ void test_store() { /* �ƥ����ѤΥץ��ѥƥ������ꤹ�� */ coil::Properties prop; prop.setProperty("rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist"); prop.setProperty("rtc.manager.arch", "i386"); prop.setProperty("rtc.manager.debug.level", "PARANOID"); prop.setProperty("rtc.manager.language", "C++"); prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp"); prop.setProperty("rtc.manager.opening_message", "Hello World"); prop.setProperty("rtc.manager.orb.name", "omniORB"); prop.setProperty("rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:"); prop.setProperty("rtc.manager.os.name", "FreeBSD"); prop.setProperty("rtc.manager.os.release", "6.1-RELEASE"); prop.setProperty("rtc.manager.subsystems", "Camera, Manipulator, Force Sensor"); prop.setProperty("rtc.openrtm.author", "Noriaki Ando"); prop.setProperty("rtc.openrtm.release", "aist"); prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence"); prop.setProperty("rtc.openrtm.version", "0.4.0"); prop.setProperty("hello", "\tHello\t"); std::ofstream outFile("stored.conf"); prop.store(outFile, "stored data"); outFile.close(); /* ��ӤΤ���δ����ͤ�������� */ vector<string> expectedLines; expectedLines.push_back("# stored data"); expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist"); expectedLines.push_back("rtc.manager.arch: i386"); expectedLines.push_back("rtc.manager.debug.level: PARANOID"); expectedLines.push_back("rtc.manager.language: C++"); expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp"); expectedLines.push_back("rtc.manager.opening_message: Hello World"); expectedLines.push_back("rtc.manager.orb.name: omniORB"); expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:"); expectedLines.push_back("rtc.manager.os.name: FreeBSD"); expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE"); expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor"); expectedLines.push_back("rtc.openrtm.author: Noriaki Ando"); expectedLines.push_back("rtc.openrtm.release: aist"); expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence"); expectedLines.push_back("rtc.openrtm.version: 0.4.0"); expectedLines.push_back("hello: \\tHello\\t"); /* ���Ϥ��줿�ե��������Ȥ򣱹ԤŤ��ɤ߹��� */ vector<string> storedLines; std::ifstream inFile("stored.conf"); string str; while (getline(inFile, str)) { storedLines.push_back(str); } inFile.close(); /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */ sort(expectedLines.begin(), expectedLines.end()); sort(storedLines.begin(), storedLines.end()); CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size()); for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) { CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]); } } /*! * @brief propertyNames()�᥽�åɤΥƥ��� * * <ul> * * <li>�̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤵ��Ƥ���ץ��� * �ƥ��ˤĤ��ơ�����̾����������뤫��</li> * * <li>�̾�Υץ��ѥƥ��ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ����� * ̾����������뤫��</li> * * <li>�ǥե�����ͤΤߤ����ꤵ��Ƥ���ץ��ѥƥ��ˤĤ��ơ�����̾�� * ��������뤫��</li> * * </ul> */ void test_propertyNames() { coil::Properties prop; /* (1) �̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤹ�� */ prop.setProperty("property_01", "value_01"); prop.setDefault("property_01", "default_01"); /* (2) �̾�Υץ��ѥƥ��ͤΤߤ����ꤹ�� */ prop.setProperty("property_02", "value_02"); /* (3) �ǥե�����ͤΤߤ����ꤹ�� */ prop.setDefault("property_03", "default_03"); /* (1),(2),(3)������ξ��ˤĤ��Ƥ⥭��̾����������뤳�Ȥ��ǧ���� */ vector<string> keys = prop.propertyNames(); CPPUNIT_ASSERT_EQUAL(3, (int) keys.size()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_01") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_02") != keys.end()); CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_03") != keys.end()); } /*! * @brief getName(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ���̾�Τ���������������뤫��</li> * </ul> */ void test_getName() { string value("test"); /* (1) �������ز����Ƥ��ʤ���� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key0("manager"); coil::Properties prop0(key0.c_str(),value.c_str()); string retkey(prop0.getName()); CPPUNIT_ASSERT_EQUAL(key0, retkey); /* (1) �������ز�������� */ /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key1("manager.hoge"); coil::Properties prop1(key1.c_str(),value.c_str()); retkey= prop1.getName(); CPPUNIT_ASSERT_EQUAL(key1, retkey); } /*! * @brief getValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getValue() { /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ string key("manager"); string value("test.test"); coil::Properties prop(key.c_str(),value.c_str()); /* ���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������뤳�Ȥ��ǧ���� */ string retval(prop.getValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getDefaultValue(void)�᥽�åɤΥƥ��� * * <ul> * <li>setDefault�ǻ��ꤷ���ץ��ѥƥ����ͤ���������������뤫��</li> * </ul> */ void test_getDefaultValue() { coil::Properties prop; string key("property_1"); string value("default_1"); /* �ǥե�����ͤ����ꤹ�� */ prop.setDefault(key.c_str(), value.c_str()); /* �ǥե�����ͤ�������� */ string retval(prop.getNode(key.c_str()).getDefaultValue()); CPPUNIT_ASSERT_EQUAL(value, retval); } /*! * @brief getLeaf(void)�᥽�åɤΥƥ��� * * <ul> * <li>getLeaf�ǻ����Ǥ���������������뤫��</li> * </ul> */ void test_getLeaf() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǻ����Ǥ���� */ std::vector<coil::Properties*> leaf(prop.getNode("rtc").getLeaf()); CPPUNIT_ASSERT(leaf[1]->getProperty("arch") == "i386"); CPPUNIT_ASSERT(leaf[1]->getProperty("debug.level") == "PARANOID"); } /*! * @brief getRoot(void)�᥽�åɤΥƥ��� * * <ul> * <li>getRoot�ǥ롼�����Ǥ���������������뤫��</li> * </ul> */ void test_getRoot() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* getLeaf()�ǥ롼�����Ǥ���� */ const coil::Properties* root(prop.getNode("rtc.manager.os").getRoot()); CPPUNIT_ASSERT(root->getProperty("arch") == "i386"); CPPUNIT_ASSERT(root->getProperty("debug.level") == "PARANOID"); } /*! * @brief operator[]()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤵ�줿��������ĥץ��ѥƥ��򡢥ץ��ѥƥ��ꥹ�Ȥ���õ���뤫��</li> * </ul> */ void test_operator() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; // const std::string& // Properties::operator[](const std::string& key) const // �Υƥ��� const coil::Properties prop0(defaults); const string& retval0(prop0["rtc.manager.arch"]); CPPUNIT_ASSERT(retval0 == "i386"); // std::string& // Properties::operator[](const std::string& key) // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
259  */
260  for (int i = 0; defaults[i] != ""; i += 2) {
261  string key = defaults[i];
262  string value = defaults[i + 1];
263  CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key));
264  CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key));
265  }
266  }
267 
276  {
277  map<string, string> defaults;
278  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
279  defaults["rtc.manager.arch"] = "i386";
280  defaults["rtc.manager.debug.level"] = "PARANOID";
281  defaults["rtc.manager.language"] = "C++";
282  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
283  defaults["rtc.manager.opening_message"] = "Hello World";
284  defaults["rtc.manager.orb.name"] = "omniORB";
285  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
286  defaults["rtc.manager.os.name"] = "FreeBSD";
287  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
288  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
289  defaults["rtc.openrtm.author"] = "Noriaki Ando";
290  defaults["rtc.openrtm.release"] = "aist";
291  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
292  defaults["rtc.openrtm.version"] = "0.4.0";
293 
294  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
295  coil::Properties prop(defaults);
296  coil::Properties cprop(prop);
297 
298 
299  /* �ƥץ��ѥƥ��Υǥե�����ͤ�����̾��ͤ�������⡢���󥹥ȥ饯���ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */
300  for (map<string, string>::iterator it = defaults.begin(); it != defaults.end(); it++) {
301  string key = it->first;
302  string value = it->second;
303  CPPUNIT_ASSERT_EQUAL(value, cprop.getDefault(key));
304  CPPUNIT_ASSERT_EQUAL(value, cprop.getProperty(key));
305  }
306  }
307 
308 
317  {
318  map<string, string> defaults;
319  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
320  defaults["rtc.manager.arch"] = "i386";
321  defaults["rtc.manager.debug.level"] = "PARANOID";
322  defaults["rtc.manager.language"] = "C++";
323  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
324  defaults["rtc.manager.opening_message"] = "Hello World";
325  defaults["rtc.manager.orb.name"] = "omniORB";
326  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
327  defaults["rtc.manager.os.name"] = "FreeBSD";
328  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
329  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
330  defaults["rtc.openrtm.author"] = "Noriaki Ando";
331  defaults["rtc.openrtm.release"] = "aist";
332  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
333  defaults["rtc.openrtm.version"] = "0.4.0";
334 
335  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
336  coil::Properties prop(defaults);
337  std::vector<coil::Properties*> leaf0(prop.getNode("rtc").getLeaf());
338  CPPUNIT_ASSERT(leaf0.size() == 3);
339 
340  /* rtc.manager�Ρ��ɤ������� */
341  delete &prop.getNode("rtc.manager");
342 
343  /* rtc�Ρ��ɤ���manager���������Ƥ�������ǧ���롣*/
344  std::vector<coil::Properties*> leaf1(prop.getNode("rtc").getLeaf());
345  CPPUNIT_ASSERT(leaf1.size() == 2);
346  std::string getval(prop.getNode("rtc.manager").getValue());
347  CPPUNIT_ASSERT("" == getval);
348  }
349 
363  {
364  /* �������Ȥʤ�Properties��������� */
365  coil::Properties propSrc;
366 
367  /* (1) �ǥե�����͡��̾��ͤΤ���������ꤵ��Ƥ����� */
368  string key1 = "key1";
369  string key1DefaultValue = "key1-default-value";
370  string key1Value = "key1-value";
371  propSrc.setDefault(key1, key1DefaultValue);
372  propSrc.setProperty(key1, key1Value);
373 
374  /* (2) �ǥե�����ͤΤ����ꤵ��Ƥ��ꡢ�̾��ͤ����ꤵ��Ƥ��ʤ���� */
375  string key2 = "key2";
376  string key2DefaultValue = "key2-default-value";
377  propSrc.setDefault(key2, key2DefaultValue);
378 
379  /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾��ͤ����ꤵ��Ƥ����� */
380  string key3 = "key3";
381  string key3Value = "key3-value";
382  propSrc.setProperty(key3, key3Value);
383 
384  /* ������Ԥ������줾��ξ��ǡ��������������줿���Ȥ��ǧ���� */
386  prop = propSrc;
387 
388  CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1));
389  CPPUNIT_ASSERT_EQUAL(key1Value, prop.getProperty(key1));
390  CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2));
391  CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getProperty(key2));
392  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3));
393  CPPUNIT_ASSERT_EQUAL(key3Value, prop.getProperty(key3));
394  }
395 
396 
412  {
414 
415  prop.setDefault("property_1", "default_1");
416  prop.setProperty("property_1", "value_1");
417  prop.setDefault("property_2", "default_2");
418  prop.setProperty("property_3", "value_3");
419 
420  /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */
421  /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */
422  string expected_1 = "value_1";
423  CPPUNIT_ASSERT_EQUAL(expected_1, prop.getProperty("property_1"));
424 
425  /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */
426  /*/ ���ˡ��ץ��ѥƥ��ͤȤ����������ǥե�����ͤ���������뤫�� */
427  string expected_2 = "default_2";
428  CPPUNIT_ASSERT_EQUAL(expected_2, prop.getProperty("property_2"));
429 
430  /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */
431  /* ���ˡ��ץ��ѥƥ��ͤȤ����������̾���ͤ���������뤫�� */
432  string expected_3 = "value_3";
433  CPPUNIT_ASSERT_EQUAL(expected_3, prop.getProperty("property_3"));
434 
435  /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */
436  /* ���ѥƥ��ͤȤ�����������ʸ���󤬼�������뤫�� */
437  string expected_4 = "";
438  CPPUNIT_ASSERT_EQUAL(expected_4, prop.getProperty("property_4"));
439  }
440 
441 
462  {
464 
465  string key1 = "key1";
466  string key1DefaultValue = "key1-default-value";
467  string key1Value = "key1-value";
468  prop.setDefault(key1, key1DefaultValue);
469  prop.setProperty(key1, key1Value);
470 
471  string key2 = "key2";
472  string key2DefaultValue = "key2-default-value";
473  prop.setDefault(key2, key2DefaultValue);
474 
475  string key3 = "key3";
476  string key3Value = "key3-value";
477  prop.setProperty(key3, key3Value);
478 
479  /* (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� */
480  /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */
481  CPPUNIT_ASSERT_EQUAL(key1DefaultValue, prop.getDefault(key1));
482 
483  /* (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� */
484  /* ���ˡ����������ꤵ��Ƥ���ǥե�����ͤ�����Ǥ��뤫�� */
485  CPPUNIT_ASSERT_EQUAL(key2DefaultValue, prop.getDefault(key2));
486 
487  /* (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� */
488  /* ���ˡ��ǥե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */
489  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(key3));
490 
491  /* (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� */
492  /* �ե�����ͤȤ��ƶ�ʸ���󤬼�������뤫�� */
493  string keyNonExist = "key-non-exist";
494  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, prop.getDefault(keyNonExist));
495  }
496 
506  {
507  string key = "key";
508  string oldValue = "old-value";
509  string newValue = "new-value";
510 
512  prop.setProperty(key, oldValue);
513 
514  /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫�� */
515  CPPUNIT_ASSERT_EQUAL(oldValue, prop.getProperty(key));
516 
517  /* (2) �����������ͤȤ��ơ����������ͤ���������������뤫�� */
518  CPPUNIT_ASSERT_EQUAL(oldValue, prop.setProperty(key, newValue));
519 
520  /* (1) ������˻��ꤷ���ͤ������������ꤵ��뤫���ʤ��Σ��� */
521  CPPUNIT_ASSERT_EQUAL(newValue, prop.getProperty(key));
522  }
523 
524 
537  void test_list()
538  {
540  prop.setProperty("rtc.component.conf.path",
541  "C:\\Program\\ Files\\OpenRTM-aist");
542  prop.setProperty("rtc.manager.arch", "i386");
543  prop.setProperty("rtc.manager.debug.level", "PARANOID");
544  prop.setProperty("rtc.manager.language", "C++");
545  prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp");
546  prop.setProperty("rtc.manager.opening_message", "Hello World");
547  prop.setProperty("rtc.manager.orb.name", "omniORB");
548  prop.setProperty("rtc.manager.orb.options",
549  "IIOPAddrPort, -ORBendPoint, giop:tcp:");
550  prop.setProperty("rtc.manager.os.name", "FreeBSD");
551  prop.setProperty("rtc.manager.os.release", "6.1-RELEASE");
552  prop.setProperty("rtc.manager.subsystems",
553  "Camera, Manipulator, Force Sensor");
554  prop.setProperty("rtc.openrtm.author", "Noriaki Ando");
555  prop.setProperty("rtc.openrtm.release", "aist");
556  prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence");
557  prop.setProperty("rtc.openrtm.version", "0.4.0");
558 
559  std::ofstream outFile("listed.conf");
560  prop.list(outFile);
561  outFile.close();
562 
563  vector<string> expectedLines;
564  expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist");
565  expectedLines.push_back("rtc.manager.arch: i386");
566  expectedLines.push_back("rtc.manager.debug.level: PARANOID");
567  expectedLines.push_back("rtc.manager.language: C++");
568  expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp");
569  expectedLines.push_back("rtc.manager.opening_message: Hello World");
570  expectedLines.push_back("rtc.manager.orb.name: omniORB");
571  expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:");
572  expectedLines.push_back("rtc.manager.os.name: FreeBSD");
573  expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE");
574  expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor");
575  expectedLines.push_back("rtc.openrtm.author: Noriaki Ando");
576  expectedLines.push_back("rtc.openrtm.release: aist");
577  expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence");
578  expectedLines.push_back("rtc.openrtm.version: 0.4.0");
579 
580  vector<string> storedLines;
581  std::ifstream inFile("listed.conf");
582  string str;
583  while (getline(inFile, str))
584  {
585  storedLines.push_back(str);
586  }
587  inFile.close();
588 
589  /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */
590  sort(expectedLines.begin(), expectedLines.end());
591  sort(storedLines.begin(), storedLines.end());
592  CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size());
593  for (vector<string>::size_type i = 0; i < expectedLines.size(); i++)
594  {
595  CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]);
596  }
597  }
598 
608  void test_load()
609  {
610  /* �ץ��ѥƥ��ꥹ�Ȥ�ե����뤫��Properties���֥������Ȥ��ɤ߹��� */
612  std::ifstream ifl("defaults.conf");
613  prop.load(ifl);
614  ifl.close();
615 
616  /* �����ͤ���Ӥ��ơ��������ɤ߹��ޤ줿���Ȥ��ǧ���� */
617  map<string, string>::iterator expected;
618  for (expected = DEFAULTS_CONF.begin();
619  expected != DEFAULTS_CONF.end(); expected++) {
620  string key = expected->first;
621  string value = expected->second;
622  CPPUNIT_ASSERT_EQUAL(value, prop.getProperty(key));
623  }
624  }
625 
640  void test_store()
641  {
642  /* �ƥ����ѤΥץ��ѥƥ������ꤹ�� */
644  prop.setProperty("rtc.component.conf.path",
645  "C:\\Program\\ Files\\OpenRTM-aist");
646  prop.setProperty("rtc.manager.arch", "i386");
647  prop.setProperty("rtc.manager.debug.level", "PARANOID");
648  prop.setProperty("rtc.manager.language", "C++");
649  prop.setProperty("rtc.manager.nameserver", "zonu.a02.aist.go.jp");
650  prop.setProperty("rtc.manager.opening_message", "Hello World");
651  prop.setProperty("rtc.manager.orb.name", "omniORB");
652  prop.setProperty("rtc.manager.orb.options",
653  "IIOPAddrPort, -ORBendPoint, giop:tcp:");
654  prop.setProperty("rtc.manager.os.name", "FreeBSD");
655  prop.setProperty("rtc.manager.os.release", "6.1-RELEASE");
656  prop.setProperty("rtc.manager.subsystems",
657  "Camera, Manipulator, Force Sensor");
658  prop.setProperty("rtc.openrtm.author", "Noriaki Ando");
659  prop.setProperty("rtc.openrtm.release", "aist");
660  prop.setProperty("rtc.openrtm.vendor", "AIST TaskIntelligence");
661  prop.setProperty("rtc.openrtm.version", "0.4.0");
662  prop.setProperty("hello", "\tHello\t");
663 
664  std::ofstream outFile("stored.conf");
665  prop.store(outFile, "stored data");
666  outFile.close();
667 
668  /* ��ӤΤ���δ����ͤ�������� */
669  vector<string> expectedLines;
670  expectedLines.push_back("# stored data");
671  expectedLines.push_back("rtc.component.conf.path: C:\\\\Program\\\\ Files\\\\OpenRTM-aist");
672  expectedLines.push_back("rtc.manager.arch: i386");
673  expectedLines.push_back("rtc.manager.debug.level: PARANOID");
674  expectedLines.push_back("rtc.manager.language: C++");
675  expectedLines.push_back("rtc.manager.nameserver: zonu.a02.aist.go.jp");
676  expectedLines.push_back("rtc.manager.opening_message: Hello World");
677  expectedLines.push_back("rtc.manager.orb.name: omniORB");
678  expectedLines.push_back("rtc.manager.orb.options: IIOPAddrPort, -ORBendPoint, giop:tcp:");
679  expectedLines.push_back("rtc.manager.os.name: FreeBSD");
680  expectedLines.push_back("rtc.manager.os.release: 6.1-RELEASE");
681  expectedLines.push_back("rtc.manager.subsystems: Camera, Manipulator, Force Sensor");
682  expectedLines.push_back("rtc.openrtm.author: Noriaki Ando");
683  expectedLines.push_back("rtc.openrtm.release: aist");
684  expectedLines.push_back("rtc.openrtm.vendor: AIST TaskIntelligence");
685  expectedLines.push_back("rtc.openrtm.version: 0.4.0");
686  expectedLines.push_back("hello: \\tHello\\t");
687 
688  /* ���Ϥ��줿�ե��������Ȥ򣱹ԤŤ��ɤ߹��� */
689  vector<string> storedLines;
690  std::ifstream inFile("stored.conf");
691  string str;
692  while (getline(inFile, str)) {
693  storedLines.push_back(str);
694  }
695  inFile.close();
696 
697  /* �ե�����˽񤭹��ޤ줿���Ƥȴ����ͤ���Ӥ��� */
698  sort(expectedLines.begin(), expectedLines.end());
699  sort(storedLines.begin(), storedLines.end());
700  CPPUNIT_ASSERT_EQUAL(expectedLines.size(), storedLines.size());
701  for (vector<string>::size_type i = 0; i < expectedLines.size(); i++) {
702  CPPUNIT_ASSERT_EQUAL(expectedLines[i], storedLines[i]);
703  }
704  }
705 
706 
724  {
726 
727  /* (1) �̾�Υץ��ѥƥ��ͤȥǥե�����ͤ�ξ�������ꤹ�� */
728  prop.setProperty("property_01", "value_01");
729  prop.setDefault("property_01", "default_01");
730 
731  /* (2) �̾�Υץ��ѥƥ��ͤΤߤ����ꤹ�� */
732  prop.setProperty("property_02", "value_02");
733 
734  /* (3) �ǥե�����ͤΤߤ����ꤹ�� */
735  prop.setDefault("property_03", "default_03");
736 
737  /* (1),(2),(3)������ξ��ˤĤ��Ƥ⥭��̾����������뤳�Ȥ��ǧ���� */
738  vector<string> keys = prop.propertyNames();
739  CPPUNIT_ASSERT_EQUAL(3, (int) keys.size());
740  CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_01")
741  != keys.end());
742  CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_02")
743  != keys.end());
744  CPPUNIT_ASSERT(find(keys.begin(), keys.end(), "property_03")
745  != keys.end());
746  }
747 
748 
757  {
758 
759  string value("test");
760 
761  /* (1) �������ز����Ƥ��ʤ���� */
762  /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
763  string key0("manager");
764  coil::Properties prop0(key0.c_str(),value.c_str());
765  string retkey(prop0.getName());
766  CPPUNIT_ASSERT_EQUAL(key0, retkey);
767 
768  /* (1) �������ز�������� */
769  /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
770  string key1("manager.hoge");
771  coil::Properties prop1(key1.c_str(),value.c_str());
772  retkey= prop1.getName();
773  CPPUNIT_ASSERT_EQUAL(key1, retkey);
774  }
775 
784  {
785  /* key,value�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
786  string key("manager");
787  string value("test.test");
788  coil::Properties prop(key.c_str(),value.c_str());
789 
790  /* ���󥹥ȥ饯���ǻ��ꤷ���ץ��ѥƥ����ͤ���������뤳�Ȥ��ǧ���� */
791  string retval(prop.getValue());
792  CPPUNIT_ASSERT_EQUAL(value, retval);
793  }
794 
803  {
805 
806  string key("property_1");
807  string value("default_1");
808  /* �ǥե�����ͤ����ꤹ�� */
809  prop.setDefault(key.c_str(), value.c_str());
810 
811  /* �ǥե�����ͤ�������� */
812  string retval(prop.getNode(key.c_str()).getDefaultValue());
813  CPPUNIT_ASSERT_EQUAL(value, retval);
814  }
815 
824  {
825  map<string, string> defaults;
826  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
827  defaults["rtc.manager.arch"] = "i386";
828  defaults["rtc.manager.debug.level"] = "PARANOID";
829  defaults["rtc.manager.language"] = "C++";
830  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
831  defaults["rtc.manager.opening_message"] = "Hello World";
832  defaults["rtc.manager.orb.name"] = "omniORB";
833  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
834  defaults["rtc.manager.os.name"] = "FreeBSD";
835  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
836  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
837  defaults["rtc.openrtm.author"] = "Noriaki Ando";
838  defaults["rtc.openrtm.release"] = "aist";
839  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
840  defaults["rtc.openrtm.version"] = "0.4.0";
841 
842  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
843  coil::Properties prop(defaults);
844 
845  /* getLeaf()�ǻ����Ǥ���� */
846  std::vector<coil::Properties*> leaf(prop.getNode("rtc").getLeaf());
847  CPPUNIT_ASSERT(leaf[1]->getProperty("arch") == "i386");
848  CPPUNIT_ASSERT(leaf[1]->getProperty("debug.level") == "PARANOID");
849  }
850 
859  {
860  map<string, string> defaults;
861  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
862  defaults["rtc.manager.arch"] = "i386";
863  defaults["rtc.manager.debug.level"] = "PARANOID";
864  defaults["rtc.manager.language"] = "C++";
865  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
866  defaults["rtc.manager.opening_message"] = "Hello World";
867  defaults["rtc.manager.orb.name"] = "omniORB";
868  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
869  defaults["rtc.manager.os.name"] = "FreeBSD";
870  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
871  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
872  defaults["rtc.openrtm.author"] = "Noriaki Ando";
873  defaults["rtc.openrtm.release"] = "aist";
874  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
875  defaults["rtc.openrtm.version"] = "0.4.0";
876 
877  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
878  coil::Properties prop(defaults);
879 
880  /* getLeaf()�ǥ롼�����Ǥ���� */
881  const coil::Properties* root(prop.getNode("rtc.manager.os").getRoot());
882  CPPUNIT_ASSERT(root->getProperty("arch") == "i386");
883  CPPUNIT_ASSERT(root->getProperty("debug.level") == "PARANOID");
884  }
885 
894  {
895  map<string, string> defaults;
896  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
897  defaults["rtc.manager.arch"] = "i386";
898  defaults["rtc.manager.debug.level"] = "PARANOID";
899  defaults["rtc.manager.language"] = "C++";
900  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
901  defaults["rtc.manager.opening_message"] = "Hello World";
902  defaults["rtc.manager.orb.name"] = "omniORB";
903  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
904  defaults["rtc.manager.os.name"] = "FreeBSD";
905  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
906  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
907  defaults["rtc.openrtm.author"] = "Noriaki Ando";
908  defaults["rtc.openrtm.release"] = "aist";
909  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
910  defaults["rtc.openrtm.version"] = "0.4.0";
911 
912  // const std::string&
913  // Properties::operator[](const std::string& key) const
914  // �Υƥ��� const coil::Properties prop0(defaults); const string& retval0(prop0["rtc.manager.arch"]); CPPUNIT_ASSERT(retval0 == "i386"); // std::string& // Properties::operator[](const std::string& key) // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
915  const coil::Properties prop0(defaults);
916  const string& retval0(prop0["rtc.manager.arch"]);
917  CPPUNIT_ASSERT(retval0 == "i386");
918 
919  // std::string&
920  // Properties::operator[](const std::string& key)
921  // �Υƥ��� coil::Properties prop1(defaults); string retval1(prop1["rtc.manager.arch"]); CPPUNIT_ASSERT(retval1 == "i386"); } /*! * @brief setDefaults()�᥽�åɤΥƥ��� * * <ul> * <li>�ǥե�����ͤ���Ͽ���������ͤ������������Ǥ��뤫��</li> * </ul> */ void test_setDefaults() { const char* defaults[] = { "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist", "rtc.manager.arch", "i386", "rtc.manager.debug.level", "PARANOID", "rtc.manager.language", "C++", "rtc.manager.nameserver", "zonu.a02.aist.go.jp", "rtc.manager.opening_message", "Hello World", "rtc.manager.orb.name", "omniORB", "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:", "rtc.manager.os.name", "FreeBSD", "rtc.manager.os.release", "6.1-RELEASE", "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor", "rtc.openrtm.author", "Noriaki Ando", "rtc.openrtm.release", "aist", "rtc.openrtm.vendor", "AIST TaskIntelligence", "rtc.openrtm.version", "0.4.0", "" }; coil::Properties prop; prop.setDefaults(defaults); /* // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
922  coil::Properties prop1(defaults);
923  string retval1(prop1["rtc.manager.arch"]);
924  CPPUNIT_ASSERT(retval1 == "i386");
925 
926  }
927 
936  {
937  const char* defaults[] = {
938  "rtc.component.conf.path", "C:\\Program\\ Files\\OpenRTM-aist",
939  "rtc.manager.arch", "i386",
940  "rtc.manager.debug.level", "PARANOID",
941  "rtc.manager.language", "C++",
942  "rtc.manager.nameserver", "zonu.a02.aist.go.jp",
943  "rtc.manager.opening_message", "Hello World",
944  "rtc.manager.orb.name", "omniORB",
945  "rtc.manager.orb.options", "IIOPAddrPort, -ORBendPoint, giop:tcp:",
946  "rtc.manager.os.name", "FreeBSD",
947  "rtc.manager.os.release", "6.1-RELEASE",
948  "rtc.manager.subsystems", "Camera, Manipulator, Force Sensor",
949  "rtc.openrtm.author", "Noriaki Ando",
950  "rtc.openrtm.release", "aist",
951  "rtc.openrtm.vendor", "AIST TaskIntelligence",
952  "rtc.openrtm.version", "0.4.0",
953  ""
954  };
955 
957  prop.setDefaults(defaults);
958 
959  /*
960  // �ƥץ��ѥƥ��Υǥե�����ͤ�setDefaults�ǻ��ꤷ���ͤǼ�������뤳�Ȥ��ǧ���� */ for (int i = 0; defaults[i] != ""; i += 2) { string key = defaults[i]; string value = defaults[i + 1]; CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key)); } } /*! * @brief size()�᥽�åɤΥƥ��� * * <ul> * <li>�ץ��ѥƥ��ο��������������Ǥ��뤫��</li> * </ul> */ void test_size() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; coil::Properties prop(defaults); /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */ CPPUNIT_ASSERT(15 == prop.size()); /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */ string key = "key"; string newValue = "new-value"; prop.setProperty(key, newValue); CPPUNIT_ASSERT(16 == prop.size()); } /*! * @brief findNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_findNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID"); CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.findNode("manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL); } /*! * @brief getNode()�᥽�åɤΥƥ��� * * <ul> * <li>�����ǻ��ꤷ���Ρ��ɤ������������Ǥ��뤫��</li> * </ul> */ void test_getNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ����¸�ߤ���Ρ��ɤ���� */ CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386"); CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID"); /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */ std::string getval(prop.getNode("manager").getValue()); CPPUNIT_ASSERT(getval == ""); // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL); } /*! * @brief removeNode()�᥽�åɤΥƥ��� * * <ul> * <li>���ꤷ���Ρ��ɤ�����������Ǥ��뤫��</li> * </ul> */ void test_removeNode() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */ CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL); /* "rtc.manager"�Ρ��ɤκ�� */ CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL); /* (1) ��������Ρ��ɤ򸡺� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); /* (2) ��������Ρ��ɤ���� */ std::string getval0(prop.getNode("rtc.manager").getValue()); CPPUNIT_ASSERT(getval0 == ""); } /*! * @brief hasKey()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ�key�����뤫�ɤ�����</li> * </ul> */ void test_hasKey() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); /* (1) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL); /* (2) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL); /* (3) ¸�ߤ��륭���ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL); /* (4) ¸�ߤ��ʤ������ǥƥ��� */ CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL); } /*! * @brief clear()�᥽�åɤΥƥ��� * * <ul> * <li>�ҥΡ��ɤ����٤ƺ������뤫�ɤ�����</li> * </ul> */ void test_clear() { map<string, string> defaults; defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist"; defaults["rtc.manager.arch"] = "i386"; defaults["rtc.manager.debug.level"] = "PARANOID"; defaults["rtc.manager.language"] = "C++"; defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp"; defaults["rtc.manager.opening_message"] = "Hello World"; defaults["rtc.manager.orb.name"] = "omniORB"; defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:"; defaults["rtc.manager.os.name"] = "FreeBSD"; defaults["rtc.manager.os.release"] = "6.1-RELEASE"; defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor"; defaults["rtc.openrtm.author"] = "Noriaki Ando"; defaults["rtc.openrtm.release"] = "aist"; defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence"; defaults["rtc.openrtm.version"] = "0.4.0"; /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */ coil::Properties prop(defaults); prop.getNode("rtc.manager.os").clear(); /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL); /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */ CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL); /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */ prop.clear(); CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL); CPPUNIT_ASSERT(prop.findNode("rtc") == NULL); } /*! * @brief createNode()�Υƥ��� * * <ul> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ��� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ���� * ��ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��</li> * * <li>�ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ����� * �Ρ��ɺ������������뤫��</li> * * </ul> */ void test_createNode() { coil::Properties prop; string key1 = "key1"; string key1DefaultValue = "key1-default-value"; string key1Value = "key1-value"; prop.setDefault(key1, key1DefaultValue); prop.setProperty(key1, key1Value); string key2 = "key2"; string key2DefaultValue = "key2-default-value"; prop.setDefault(key2, key2DefaultValue); string key3 = "key3"; string key3Value = "key3-value"; prop.setProperty(key3, key3Value); /* // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
961  */
962  for (int i = 0; defaults[i] != ""; i += 2) {
963  string key = defaults[i];
964  string value = defaults[i + 1];
965  CPPUNIT_ASSERT_EQUAL(value, prop.getDefault(key));
966  }
967  }
968 
976  void test_size()
977  {
978  map<string, string> defaults;
979  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
980  defaults["rtc.manager.arch"] = "i386";
981  defaults["rtc.manager.debug.level"] = "PARANOID";
982  defaults["rtc.manager.language"] = "C++";
983  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
984  defaults["rtc.manager.opening_message"] = "Hello World";
985  defaults["rtc.manager.orb.name"] = "omniORB";
986  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
987  defaults["rtc.manager.os.name"] = "FreeBSD";
988  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
989  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
990  defaults["rtc.openrtm.author"] = "Noriaki Ando";
991  defaults["rtc.openrtm.release"] = "aist";
992  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
993  defaults["rtc.openrtm.version"] = "0.4.0";
994 
995  coil::Properties prop(defaults);
996 
997  /* (1) ���󥹥ȥ饯�������ˤƻ��ꤷ���ץ��ѥƥ��ο��������������Ǥ��뤫�� */
998  CPPUNIT_ASSERT(15 == prop.size());
999 
1000  /* (2) �������ɲø�Υץ��ѥƥ��ο��������������Ǥ��뤫�� */
1001  string key = "key";
1002  string newValue = "new-value";
1003  prop.setProperty(key, newValue);
1004  CPPUNIT_ASSERT(16 == prop.size());
1005  }
1006 
1015  {
1016  map<string, string> defaults;
1017  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
1018  defaults["rtc.manager.arch"] = "i386";
1019  defaults["rtc.manager.debug.level"] = "PARANOID";
1020  defaults["rtc.manager.language"] = "C++";
1021  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
1022  defaults["rtc.manager.opening_message"] = "Hello World";
1023  defaults["rtc.manager.orb.name"] = "omniORB";
1024  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
1025  defaults["rtc.manager.os.name"] = "FreeBSD";
1026  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
1027  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
1028  defaults["rtc.openrtm.author"] = "Noriaki Ando";
1029  defaults["rtc.openrtm.release"] = "aist";
1030  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
1031  defaults["rtc.openrtm.version"] = "0.4.0";
1032 
1033  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
1034  coil::Properties prop(defaults);
1035 
1036  /* (1) ¸�ߤ���Ρ��ɤ���ꤷ�Ρ��ɤ���� */
1037  CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("arch") == "i386");
1038  CPPUNIT_ASSERT(prop.findNode("rtc.manager")->getProperty("debug.level") == "PARANOID");
1039  CPPUNIT_ASSERT(prop.findNode("rtc.manager") != NULL);
1040 
1041  /* (2) ¸�ߤ��ʤ��Ρ��ɤ���ꤷ�Ρ��ɤ���� */
1042  CPPUNIT_ASSERT(prop.findNode("manager") == NULL);
1043  CPPUNIT_ASSERT(prop.findNode("rtc.MANAGER") == NULL);
1044  }
1045 
1054  {
1055  map<string, string> defaults;
1056  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
1057  defaults["rtc.manager.arch"] = "i386";
1058  defaults["rtc.manager.debug.level"] = "PARANOID";
1059  defaults["rtc.manager.language"] = "C++";
1060  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
1061  defaults["rtc.manager.opening_message"] = "Hello World";
1062  defaults["rtc.manager.orb.name"] = "omniORB";
1063  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
1064  defaults["rtc.manager.os.name"] = "FreeBSD";
1065  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
1066  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
1067  defaults["rtc.openrtm.author"] = "Noriaki Ando";
1068  defaults["rtc.openrtm.release"] = "aist";
1069  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
1070  defaults["rtc.openrtm.version"] = "0.4.0";
1071 
1072  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
1073  coil::Properties prop(defaults);
1074 
1075  /* (1) ����¸�ߤ���Ρ��ɤ���� */
1076  CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("arch") == "i386");
1077  CPPUNIT_ASSERT(prop.getNode("rtc.manager").getProperty("debug.level") == "PARANOID");
1078 
1079  /* (2) ¸�ߤ��ʤ��Ρ��ɤ���� */
1080  std::string getval(prop.getNode("manager").getValue());
1081  CPPUNIT_ASSERT(getval == "");
1082 // CPPUNIT_ASSERT(prop.getNode("rtc.manager") != NULL);
1083  }
1084 
1093  {
1094  map<string, string> defaults;
1095  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
1096  defaults["rtc.manager.arch"] = "i386";
1097  defaults["rtc.manager.debug.level"] = "PARANOID";
1098  defaults["rtc.manager.language"] = "C++";
1099  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
1100  defaults["rtc.manager.opening_message"] = "Hello World";
1101  defaults["rtc.manager.orb.name"] = "omniORB";
1102  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
1103  defaults["rtc.manager.os.name"] = "FreeBSD";
1104  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
1105  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
1106  defaults["rtc.openrtm.author"] = "Noriaki Ando";
1107  defaults["rtc.openrtm.release"] = "aist";
1108  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
1109  defaults["rtc.openrtm.version"] = "0.4.0";
1110 
1111  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
1112  coil::Properties prop(defaults);
1113 
1114  /* "rtc.manager"�Τ褦�˻��ꤷ����硢����Ǥ��ʤ��� */
1115  CPPUNIT_ASSERT(prop.removeNode("rtc.manager") == NULL);
1116 
1117  /* "rtc.manager"�Ρ��ɤκ�� */
1118  CPPUNIT_ASSERT(prop.getNode("rtc").removeNode("manager") != NULL);
1119 
1120  /* (1) ��������Ρ��ɤ򸡺� */
1121  CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL);
1122 
1123  /* (2) ��������Ρ��ɤ���� */
1124  std::string getval0(prop.getNode("rtc.manager").getValue());
1125  CPPUNIT_ASSERT(getval0 == "");
1126  }
1127 
1136  {
1137  map<string, string> defaults;
1138  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
1139  defaults["rtc.manager.arch"] = "i386";
1140  defaults["rtc.manager.debug.level"] = "PARANOID";
1141  defaults["rtc.manager.language"] = "C++";
1142  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
1143  defaults["rtc.manager.opening_message"] = "Hello World";
1144  defaults["rtc.manager.orb.name"] = "omniORB";
1145  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
1146  defaults["rtc.manager.os.name"] = "FreeBSD";
1147  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
1148  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
1149  defaults["rtc.openrtm.author"] = "Noriaki Ando";
1150  defaults["rtc.openrtm.release"] = "aist";
1151  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
1152  defaults["rtc.openrtm.version"] = "0.4.0";
1153 
1154  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
1155  coil::Properties prop(defaults);
1156 
1157  /* (1) ¸�ߤ��륭���ǥƥ��� */
1158  CPPUNIT_ASSERT(prop.hasKey("rtc") != NULL);
1159 
1160  /* (2) ¸�ߤ��ʤ������ǥƥ��� */
1161  CPPUNIT_ASSERT(prop.hasKey("hoge") == NULL);
1162 
1163  /* (3) ¸�ߤ��륭���ǥƥ��� */
1164  CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("manager") != NULL);
1165 
1166  /* (4) ¸�ߤ��ʤ������ǥƥ��� */
1167  CPPUNIT_ASSERT(prop.getNode("rtc").hasKey("hoge") == NULL);
1168  }
1169 
1177  void test_clear()
1178  {
1179  map<string, string> defaults;
1180  defaults["rtc.component.conf.path"] = "C:\\Program\\ Files\\OpenRTM-aist";
1181  defaults["rtc.manager.arch"] = "i386";
1182  defaults["rtc.manager.debug.level"] = "PARANOID";
1183  defaults["rtc.manager.language"] = "C++";
1184  defaults["rtc.manager.nameserver"] = "zonu.a02.aist.go.jp";
1185  defaults["rtc.manager.opening_message"] = "Hello World";
1186  defaults["rtc.manager.orb.name"] = "omniORB";
1187  defaults["rtc.manager.orb.options"] = "IIOPAddrPort, -ORBendPoint, giop:tcp:";
1188  defaults["rtc.manager.os.name"] = "FreeBSD";
1189  defaults["rtc.manager.os.release"] = "6.1-RELEASE";
1190  defaults["rtc.manager.subsystems"] = "Camera, Manipulator, Force Sensor";
1191  defaults["rtc.openrtm.author"] = "Noriaki Ando";
1192  defaults["rtc.openrtm.release"] = "aist";
1193  defaults["rtc.openrtm.vendor"] = "AIST TaskIntelligence";
1194  defaults["rtc.openrtm.version"] = "0.4.0";
1195 
1196  /* map�ˤ��ǥե�����ͻ����Properties���֥������Ȥ��������� */
1197  coil::Properties prop(defaults);
1198 
1199  prop.getNode("rtc.manager.os").clear();
1200 
1201  /* (1) "rtc.manager.os"�ʲ��ΥΡ��ɤ��������Ƥ��뤫�� */
1202  CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.name") == NULL);
1203  CPPUNIT_ASSERT(prop.findNode("rtc.manager.os.release") == NULL);
1204 
1205  /* (2) "rtc.manager.os"�ʳ��ΥΡ��ɤϺ������Ƥ��ʤ����� */
1206  CPPUNIT_ASSERT(prop.findNode("rtc.manager.arch") != NULL);
1207  CPPUNIT_ASSERT(prop.findNode("rtc.manager.orb") != NULL);
1208 
1209  /* (3) ���٤ƤΥΡ��ɤ��������Ƥ��뤫�� */
1210  prop.clear();
1211  CPPUNIT_ASSERT(prop.findNode("rtc.manager.os") == NULL);
1212  CPPUNIT_ASSERT(prop.findNode("rtc.manager") == NULL);
1213  CPPUNIT_ASSERT(prop.findNode("rtc.openrtm") == NULL);
1214  CPPUNIT_ASSERT(prop.findNode("rtc.component") == NULL);
1215  CPPUNIT_ASSERT(prop.findNode("rtc") == NULL);
1216  }
1217 
1218 
1239  {
1241 
1242  string key1 = "key1";
1243  string key1DefaultValue = "key1-default-value";
1244  string key1Value = "key1-value";
1245  prop.setDefault(key1, key1DefaultValue);
1246  prop.setProperty(key1, key1Value);
1247 
1248  string key2 = "key2";
1249  string key2DefaultValue = "key2-default-value";
1250  prop.setDefault(key2, key2DefaultValue);
1251 
1252  string key3 = "key3";
1253  string key3Value = "key3-value";
1254  prop.setProperty(key3, key3Value);
1255 
1256  /*
1257  // (1) �ǥե�����ͤ����ꤵ��Ƥ��ꡢ�����̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key1.c_str())); /* // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key2.c_str())); /* // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
1258  // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��
1259  */
1260  CPPUNIT_ASSERT(! prop.createNode(key1.c_str()));
1261 
1262  /*
1263  // (2) �ǥե�����ͤ����ꤵ��Ƥ��뤬���̾���ͤ����ꤵ��Ƥ��ʤ�
1264  // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��
1265  */
1266  CPPUNIT_ASSERT(! prop.createNode(key2.c_str()));
1267 
1268  /*
1269  // (3) �ǥե�����ͤ����ꤵ��Ƥ��ʤ������̾���ͤ����ꤵ��Ƥ��� // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫�� */ CPPUNIT_ASSERT(! prop.createNode(key3.c_str())); /* // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ��� // ���Ρ��ɺ������������뤫�� */ string keyNonExist = "key-non-exist"; CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str())); } /*! * @brief <<�黻�ҤΥƥ��� * * <ul> * * <li>�ǥե�����ͤϡ����Ϥ���ʤ����Ȥ��ǧ����
1270  // ���ˡ���������̾�ο����Ρ��ɺ��������տޤɤ��꼺�Ԥ��뤫��
1271  */
1272  CPPUNIT_ASSERT(! prop.createNode(key3.c_str()));
1273 
1274  /*
1275  // (4) �ǥե�����͡��̾���ͤΤ���������ꤵ��Ƥ��ʤ����ˡ���
1276  // ���Ρ��ɺ������������뤫��
1277  */
1278  string keyNonExist = "key-non-exist";
1279  CPPUNIT_ASSERT(prop.createNode(keyNonExist.c_str()));
1280  }
1281 
1282 
1299  {
1300  /* ���ϸ��Ȥʤ�Properties�Σ����ܤ�������� */
1301  coil::Properties propA;
1302 
1303  string keyA1 = "keyA1";
1304  string keyA1DefaultValue = "keyA1-default-value";
1305  string keyA1Value = "keyA1-value";
1306  propA.setDefault(keyA1, keyA1DefaultValue);
1307  propA.setProperty(keyA1, keyA1Value);
1308 
1309  string keyA2 = "keyA2";
1310  string keyA2DefaultValue = "keyA2-default-value";
1311  propA.setDefault(keyA2, keyA2DefaultValue);
1312 
1313  string keyA3 = "keyA3";
1314  string keyA3Value = "keyA3-value";
1315  propA.setProperty(keyA3, keyA3Value);
1316 
1317  /* ���ϸ��Ȥʤ�Properties�Σ����ܤ�������� */
1318  coil::Properties propB;
1319 
1320  string keyB1 = "keyB1";
1321  string keyB1DefaultValue = "keyB1-default-value";
1322  string keyB1Value = "keyB1-value";
1323  propB.setDefault(keyB1, keyB1DefaultValue);
1324  propB.setProperty(keyB1, keyB1Value);
1325 
1326  string keyB2 = "keyB2";
1327  string keyB2DefaultValue = "keyB2-default-value";
1328  propB.setDefault(keyB2, keyB2DefaultValue);
1329 
1330  string keyB3 = "keyB3";
1331  string keyB3Value = "keyB3-value";
1332  propB.setProperty(keyB3, keyB3Value);
1333 
1334  /*
1335  // ���Ĥ�Properties�ˡ����̤��륭��̾�Ǹߤ��˰ۤʤ��ͤ����ꤷ�Ƥ���
1336  */
1337  string keyCommon = "keyCommon";
1338  string keyCommonValueA = "keyCommon-value-A";
1339  string keyCommonValueB = "keyCommon-value-B";
1340  propA.setProperty(keyCommon, keyCommonValueA);
1341  propB.setProperty(keyCommon, keyCommonValueB);
1342 
1343  /* propB��propA�����Ϥ��� */
1344  propA << propB;
1345 
1346  /* �������ޡ������줿���Ȥ��ǧ���� */
1347  /* (1) �������������ꤵ��Ƥ��ꡢ���̥����Ǥʤ���Τϡ���ȤΤޤ� */
1348  /* �Ǥ��뤳�Ȥ��ǧ���� */
1349  CPPUNIT_ASSERT_EQUAL(keyA1DefaultValue, propA.getDefault(keyA1));
1350  CPPUNIT_ASSERT_EQUAL(keyA1Value, propA.getProperty(keyA1));
1351  CPPUNIT_ASSERT_EQUAL(keyA2DefaultValue, propA.getDefault(keyA2));
1352  CPPUNIT_ASSERT_EQUAL(keyA2DefaultValue, propA.getProperty(keyA2));
1353  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, propA.getDefault(keyA3));
1354  CPPUNIT_ASSERT_EQUAL(keyA3Value, propA.getProperty(keyA3));
1355 
1356  /* (2) �̾��ͤ����Ϥ��졢�ǥե�����ͤ����Ϥ���ʤ����Ȥ��ǧ���� */
1357  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, propA.getDefault(keyB1));
1358  CPPUNIT_ASSERT_EQUAL(keyB1Value, propA.getProperty(keyB1));
1359  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, propA.getDefault(keyB2));
1360  CPPUNIT_ASSERT_EQUAL(keyB2DefaultValue, propA.getProperty(keyB2));
1361  CPPUNIT_ASSERT_EQUAL(EMPTY_STRING, propA.getDefault(keyB3));
1362  CPPUNIT_ASSERT_EQUAL(keyB3Value, propA.getProperty(keyB3));
1363 
1364  /* (3) ���̥���̾�ˤĤ��ơ����Ϥ����ͤǾ�񤭤���Ƥ��뤳�Ȥ��ǧ���� */
1365  CPPUNIT_ASSERT_EQUAL(keyCommonValueB, propA.getProperty(keyCommon));
1366  }
1367 
1388  {
1389  class P : public coil::Properties
1390  {
1391  public:
1392  void splitKeyValue_protected(const std::string& str,
1393  std::string& key, std::string& value)
1394  {
1395  splitKeyValue(str, key, value);
1396  }
1397  };
1398 
1399  string keyAndValue = " property_name : C:\\abc\\pqr.xyz ";
1400 
1401  string key, value;
1402  P prop;
1403  prop.splitKeyValue_protected(keyAndValue, key, value);
1404 
1405  /* �������ͤ���;ʬ�ʶ���ʸ��������줿������ʬΥ����Ƥ��뤳�� */
1406  /* ���ǧ���� */
1407  string expectedKey("property_name");
1408  CPPUNIT_ASSERT_EQUAL(expectedKey, key);
1409 
1410  string expectedValue("C:\\abc\\pqr.xyz");
1411  CPPUNIT_ASSERT_EQUAL(expectedValue, value);
1412  }
1413 
1414 
1415 
1416  };
1417 }; // namespace Properties
1418 
1419 /*
1420  * Register test suite
1421  */
1423 
1424 #ifdef LOCAL_MAIN
1425 int main(int argc, char* argv[])
1426 {
1427 
1428  FORMAT format = TEXT_OUT;
1429  int target = 0;
1430  std::string xsl;
1431  std::string ns;
1432  std::string fname;
1433  std::ofstream ofs;
1434 
1435  int i(1);
1436  while (i < argc)
1437  {
1438  std::string arg(argv[i]);
1439  std::string next_arg;
1440  if (i + 1 < argc) next_arg = argv[i + 1];
1441  else next_arg = "";
1442 
1443  if (arg == "--text") { format = TEXT_OUT; break; }
1444  if (arg == "--xml")
1445  {
1446  if (next_arg == "")
1447  {
1448  fname = argv[0];
1449  fname += ".xml";
1450  }
1451  else
1452  {
1453  fname = next_arg;
1454  }
1455  format = XML_OUT;
1456  ofs.open(fname.c_str());
1457  }
1458  if ( arg == "--compiler" ) { format = COMPILER_OUT; break; }
1459  if ( arg == "--cerr" ) { target = 1; break; }
1460  if ( arg == "--xsl" )
1461  {
1462  if (next_arg == "") xsl = "default.xsl";
1463  else xsl = next_arg;
1464  }
1465  if ( arg == "--namespace" )
1466  {
1467  if (next_arg == "")
1468  {
1469  std::cerr << "no namespace specified" << std::endl;
1470  exit(1);
1471  }
1472  else
1473  {
1474  xsl = next_arg;
1475  }
1476  }
1477  ++i;
1478  }
1479  CppUnit::TextUi::TestRunner runner;
1480  if ( ns.empty() )
1481  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
1482  else
1483  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest());
1484  CppUnit::Outputter* outputter = 0;
1485  std::ostream* stream = target ? &std::cerr : &std::cout;
1486  switch ( format )
1487  {
1488  case TEXT_OUT :
1489  outputter = new CppUnit::TextOutputter(&runner.result(),*stream);
1490  break;
1491  case XML_OUT :
1492  std::cout << "XML_OUT" << std::endl;
1493  outputter = new CppUnit::XmlOutputter(&runner.result(),
1494  ofs, "shift_jis");
1495  static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl);
1496  break;
1497  case COMPILER_OUT :
1498  outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream);
1499  break;
1500  }
1501  runner.setOutputter(outputter);
1502  runner.run();
1503  return 0; // runner.run() ? 0 : 1;
1504 }
1505 #endif // MAIN
1506 #endif // Properties_cpp
void test_findNode()
findNode()�᥽�åɤΥƥ���
const std::vector< Properties * > & getLeaf(void) const
Get elements of leaf.
Definition: Properties.h:340
int main(int argc, char **argv)
CPPUNIT_TEST_SUITE_REGISTRATION(Properties::PropertiesTests)
void test_hasKey()
hasKey()�᥽�åɤΥƥ���
void test_list()
list()�᥽�åɤΥƥ���
const char * getName(void) const
Get Names.
Definition: Properties.h:283
void test_Properties_destructor()
~Properties(void)�ǥ��ȥ饯���Υƥ���
void test_substitute()
=�黻�ҡ������黻�ҡˤΥƥ���
void clear(void)
Clear the children.
Definition: Properties.cpp:534
void store(std::ostream &out, const std::string &header)
Stores property list to the output stream.
Definition: Properties.cpp:394
void test_getNode()
getNode()�᥽�åɤΥƥ���
void test_getProperty()
getProperty()�᥽�åɤΥƥ���
void test_ctor_map()
Properties(std::map<string, string>&)���󥹥ȥ饯���Υƥ���
virtual void setUp()
Test initialization.
void test_clear()
clear()�᥽�åɤΥƥ���
std::map< std::string, std::string >::iterator Itr
Properties * hasKey(const char *key) const
Check whether key exists in the children.
Definition: Properties.cpp:517
void test_propertyNames()
propertyNames()�᥽�åɤΥƥ���
void list(std::ostream &out)
Prints this property list out to the specified output stream.
Definition: Properties.cpp:322
void test_operator()
operator[]()�᥽�åɤΥƥ���
void test_getRoot()
getRoot(void)�᥽�åɤΥƥ���
map< string, string > DEFAULTS_CONF
void setDefaults(const char *defaults[], long num=LONG_MAX)
Set a default value together in the property list.
Definition: Properties.cpp:295
void test_getValue()
getValue(void)�᥽�åɤΥƥ���
CORBA::Long find(const CorbaSequence &seq, Functor f)
Return the index of CORBA sequence element that functor matches.
void test_load()
load()�᥽�åɤΥƥ���
void test_getName()
getName(void)�᥽�åɤΥƥ���
std::string setProperty(const std::string &key, const std::string &value)
Set a value associated with key in the property list.
Definition: Properties.cpp:236
bool createNode(const std::string &key)
Create newly node of Properties.
Definition: Properties.cpp:474
void test_Properties_key_value()
Properties(const char* key = "", const char* value = "")���󥹥ȥ饯���Υƥ���
Properties * removeNode(const char *leaf_name)
Remove node of Properties.
Definition: Properties.cpp:493
Properties *const findNode(const std::string &key) const
Get node of properties.
Definition: Properties.cpp:439
void load(std::istream &inStream)
Loads property list that consists of key:value from input stream.
Definition: Properties.cpp:334
void test_removeNode()
removeNode()�᥽�åɤΥƥ���
void test_createNode()
createNode()�Υƥ���
void test_store()
store()�᥽�åɤΥƥ���
void test_setProperty()
setProperty()�᥽�åɤΥƥ���
prop
Organization::get_organization_property ();.
Class represents a set of properties.
Definition: Properties.h:101
void test_size()
size()�᥽�åɤΥƥ���
void test_getDefaultValue()
getDefaultValue(void)�᥽�åɤΥƥ���
const char * getValue(void) const
Get values.
Definition: Properties.h:302
void test_getLeaf()
getLeaf(void)�᥽�åɤΥƥ���
int size(void) const
Get the number of Properties.
Definition: Properties.cpp:427
void test_splitKeyValue()
splitKeyValue()�᥽�åɤΥƥ���
void test_setDefaults()
setDefaults()�᥽�åɤΥƥ���
std::vector< std::string > propertyNames(void) const
Return an vector of all the keys in this property.
Definition: Properties.cpp:410
Properties & getNode(const std::string &key)
Get node of properties.
Definition: Properties.cpp:455
virtual void tearDown()
Test finalization.
const std::string & getDefault(const std::string &key) const
Get the default values with specified key.
Definition: Properties.cpp:217
const std::string & getProperty(const std::string &key) const
Search for the property with the specified key in this property.
Definition: Properties.cpp:156
std::string setDefault(const std::string &key, const std::string &value)
Set a default value associated with key in the property list.
Definition: Properties.cpp:266
void test_streamInput()
<<�黻�ҤΥƥ���
void test_Properties_copy()
Properties(const Properties& prop)���ԡ����󥹥ȥ饯���Υƥ���
const Properties * getRoot(void) const
Get root element.
Definition: Properties.h:359
void test_getDefault()
getDefault()�Υƥ���


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Mon Jun 10 2019 14:07:54