test_doc
test_Block.cpp
浏览该文件的文档.
1 /*
2  * test_Block.cpp
3  *
4  * Created on: 2015年2月9日
5  * Author: fasiondog
6  */
7 
8 #ifdef TEST_ALL_IN_ONE
9  #include <boost/test/unit_test.hpp>
10 #else
11  #define BOOST_TEST_MODULE test_hikyuu_serialize_suite
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <fstream>
16 #include <boost/archive/xml_oarchive.hpp>
17 #include <boost/archive/xml_iarchive.hpp>
18 #include <hikyuu/StockManager.h>
19 #include <hikyuu/serialization/Block_serialization.h>
20 
21 using namespace hku;
22 
23 #if HKU_SUPPORT_SERIALIZATION
24 
32 BOOST_AUTO_TEST_CASE( test_Block_serialize ) {
33  StockManager& sm = StockManager::instance();
34  string filename(sm.tmpdir());
35  filename += "/Block.xml";
36 
37  Block blk1("test", "test_1");
38  {
39  std::ofstream ofs(filename);
40  boost::archive::xml_oarchive oa(ofs);
41  oa << BOOST_SERIALIZATION_NVP(blk1);
42  }
43 
44  Block blk2;
45  {
46  std::ifstream ifs(filename);
47  boost::archive::xml_iarchive ia(ifs);
48  ia >> BOOST_SERIALIZATION_NVP(blk2);
49  }
50 
51  BOOST_CHECK(blk1.category() == blk2.category());
52  BOOST_CHECK(blk1.name() == blk2.name());
53  BOOST_CHECK(blk1.size() == blk2.size());
54 
55  blk1.add("sh000001");
56  blk1.add("sz000001");
57  {
58  std::ofstream ofs(filename);
59  boost::archive::xml_oarchive oa(ofs);
60  oa << BOOST_SERIALIZATION_NVP(blk1);
61  }
62  {
63  std::ifstream ifs(filename);
64  boost::archive::xml_iarchive ia(ifs);
65  ia >> BOOST_SERIALIZATION_NVP(blk2);
66  }
67  BOOST_CHECK(blk1.category() == blk2.category());
68  BOOST_CHECK(blk1.name() == blk2.name());
69  BOOST_CHECK(blk1.size() == blk2.size());
70  BOOST_CHECK(blk2.have("sh000001"));
71  BOOST_CHECK(blk2.have("sz000001"));
72 }
73 
76 #endif /* HKU_SUPPORT_SERIALIZATION */
77 
BOOST_AUTO_TEST_CASE(test_Block_1)
Definition: test_Block.cpp:29