Changeset 140
- Timestamp:
- 05/24/08 20:45:40 (8 months ago)
- Files:
-
- trunk/dba/dba/xmlostream.cpp (modified) (1 diff)
- trunk/dba/test/main.cpp (modified) (2 diffs)
- trunk/dba/test/xmltestcase.cpp (modified) (1 diff)
- trunk/dba/test/xmltestcase.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dba/dba/xmlostream.cpp
r138 r140 136 136 bool ret = false; 137 137 if (!pObject->isDeleted()) { 138 if (pMember.getFKeyName() != NULL) {139 xmlAddChild(mParentNode, xmlNewNode(NULL, (xmlChar*)pMember.getFKeyName()));140 mParentNode = mParentNode->children;141 };142 138 std::auto_ptr<CollectionFilterIterator> iterator(pFilter.createIterator()); 143 while(iterator->hasNext()) {144 Storeable& toStore = (Storeable&)(iterator->get());145 if ( !toStore.isDeleted()) {146 was_changed = store(&toStore);147 if (!ret) ret = was_changed;139 //do not create fkey node if list is empty 140 if (iterator->hasNext()) { 141 if (pMember.getFKeyName() != NULL) { 142 xmlAddChild(mParentNode, xmlNewNode(NULL, (xmlChar*)pMember.getFKeyName())); 143 mParentNode = mParentNode->children; 148 144 }; 149 iterator->moveForward(); 150 }; 151 if (pMember.getFKeyName() != NULL) { 152 mParentNode = mParentNode->parent; 145 while(iterator->hasNext()) { 146 Storeable& toStore = (Storeable&)(iterator->get()); 147 if (!toStore.isDeleted()) { 148 was_changed = put(&toStore); 149 if (!ret) ret = was_changed; 150 }; 151 iterator->moveForward(); 152 }; 153 if (pMember.getFKeyName() != NULL) { 154 mParentNode = mParentNode->parent; 155 }; 153 156 }; 154 157 }; trunk/dba/test/main.cpp
r136 r140 144 144 CppUnit::BriefTestProgressListener listener; 145 145 runner.eventManager().addListener(&listener); 146 runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );146 //runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); 147 147 //runner.addTest(new CppUnit::TestCaller<SQLite3SQLArchiveTestCase>("debug_test",&SQLite3SQLArchiveTestCase::sqlError)); 148 148 //runner.addTest(new CppUnit::TestCaller<PostgresSQLArchiveTestCase>("debug_test",&PostgresSQLArchiveTestCase::sqlError)); … … 151 151 //runner.addTest(new CppUnit::TestCaller<SQLite3SQLArchiveTestCase>("debug_test",&SQLite3SQLArchiveTestCase::transactions_rollback)); 152 152 //runner.addTest(dba_tests::XMLTestCase::suite()); 153 //runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::sublist_one));153 runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::sublist_tree_store)); 154 154 //runner.addTest(new CppUnit::TestCaller<OdbcPluginTestCase>("debug_test",&OdbcPluginTestCase::dbConnection)); 155 155 //runner.addTest(new CppUnit::TestCaller<PostgresSQLArchiveTestCase>("debug_test",&PostgresSQLArchiveTestCase::sqlError)); trunk/dba/test/xmltestcase.cpp
r139 r140 353 353 }; 354 354 355 void 356 XMLTestCase::sublist_tree_store() { 357 const char* result = 358 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" 359 "<dba>\n" 360 " <test_objects i_value=\"1\" f_value=\"1\" s_value=\"1\" d_value=\"2008-01-01Z00:00:00\">\n" 361 " <fk_owner>\n" 362 " <test_objects i_value=\"2\" f_value=\"2\" s_value=\"2\" d_value=\"2008-01-01Z00:00:00\">\n" 363 " <fk_owner>\n" 364 " <test_objects i_value=\"3\" f_value=\"3\" s_value=\"3\" d_value=\"2008-01-01Z00:00:00\"/>\n" 365 " </fk_owner>\n" 366 " </test_objects>\n" 367 " </fk_owner>\n" 368 " </test_objects>\n" 369 "</dba>\n"; 370 { 371 dba::XMLArchive ar; 372 unlink("sublist_tree.xml"); 373 ar.open("sublist_tree.xml"); 374 TreeObject root(1,1,"1"); 375 TreeObject middle(2,2,"2"); 376 TreeObject last(3,3,"3"); 377 middle.mLeafs.push_back(last); 378 root.mLeafs.push_back(middle); 379 380 dba::XMLOStream stream(ar.getOStream()); 381 stream.open(); 382 stream.put(&root); 383 } 384 CPPUNIT_ASSERT(compareXML("sublist_tree.xml",result)); 385 }; 386 387 void 388 XMLTestCase::sublist_three_simple() { 389 const char* result = 390 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" 391 "<dba>\n" 392 " <three_lists three_name=\"sub\">\n" 393 " <fk_three_owner>\n" 394 " <obj_with_list name=\"sub_0\">\n" 395 " <fk_owner>\n" 396 " <test_objects i_value=\"0\" f_value=\"0\" s_value=\"test_object\" d_value=\"2008-01-01Z00:00:00\"/>\n" 397 " </fk_owner>\n" 398 " </obj_with_list>\n" 399 " </fk_three_owner>\n" 400 " </three_lists>\n" 401 "</dba>\n"; 402 { 403 dba::XMLArchive ar; 404 unlink("sublist_three_simple.xml"); 405 ar.open("sublist_three_simple.xml"); 406 ThreeLists root("sub",1,1); 407 408 dba::XMLOStream stream(ar.getOStream()); 409 stream.open(); 410 stream.put(&root); 411 } 412 CPPUNIT_ASSERT(compareXML("sublist_three_simple.xml",result)); 413 }; 414 355 415 356 416 } //namespace trunk/dba/test/xmltestcase.h
r139 r140 39 39 CPPUNIT_TEST(sublist_one_store_nofk); 40 40 CPPUNIT_TEST(sublist_one_load_nofk); 41 CPPUNIT_TEST(sublist_tree_store); 42 CPPUNIT_TEST(sublist_three_simple); 41 43 CPPUNIT_TEST_SUITE_END(); 42 44 public: … … 59 61 void sublist_one_store_nofk(); 60 62 void sublist_one_load_nofk(); 63 void sublist_tree_store(); 64 void sublist_three_simple(); 61 65 private: 62 66 bool compareXML(const char* pFilename, const char* pData);
