Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / tests / parser / HistoryLogReader_test.cc
1 #include "TestSetup.h"
2 #include "zypp/parser/HistoryLogReader.h"
3 #include "zypp/parser/ParseException.h"
4
5 using namespace zypp;
6
7 namespace
8 {
9   bool ProcessData( const HistoryLogData::Ptr & ptr )
10   {
11     DBG << ptr->date() << " | " << ptr << endl;
12
13     return true;
14   }
15 }
16
17
18 BOOST_AUTO_TEST_CASE(basic)
19 {
20   std::vector<HistoryLogData::Ptr> history;
21   parser::HistoryLogReader parser( TESTS_SRC_DIR "/parser/HistoryLogReader_test.dat",
22                                    parser::HistoryLogReader::Options(),
23     [&history]( HistoryLogData::Ptr ptr )->bool {
24       history.push_back( ptr );
25       return true;
26     } );
27
28   BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), false );
29   BOOST_CHECK_THROW( parser.readAll(), parser::ParseException );
30
31   parser.setIgnoreInvalidItems( true );
32   BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), true );
33
34   history.clear();
35   parser.readAll();
36
37   BOOST_CHECK_EQUAL( history.size(), 7 );
38   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRepoAdd>      ( history[0] ) );
39   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataInstall>      ( history[1] ) );
40   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataInstall>      ( history[2] ) );
41   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRemove>       ( history[3] ) );
42   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRepoRemove>   ( history[4] ) );
43   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRemove>       ( history[5] ) );
44   BOOST_CHECK( dynamic_pointer_cast<HistoryLogData>             ( history[6] ) );
45
46   BOOST_CHECK_EQUAL( (*history[1])[HistoryLogDataInstall::USERDATA_INDEX], "trans|ID" ); // properly (un)escaped?
47   HistoryLogDataInstall::Ptr p = dynamic_pointer_cast<HistoryLogDataInstall>( history[1] );
48   BOOST_CHECK_EQUAL( p->userdata(), "trans|ID" ); // properly (un)escaped?
49 }