Imported Upstream version 17.23.5
[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 BOOST_AUTO_TEST_CASE(basic)
8 {
9   std::vector<HistoryLogData::Ptr> history;
10   parser::HistoryLogReader parser( TESTS_SRC_DIR "/parser/HistoryLogReader_test.dat",
11                                    parser::HistoryLogReader::Options(),
12     [&history]( HistoryLogData::Ptr ptr )->bool {
13       history.push_back( ptr );
14       return true;
15     } );
16
17   BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), false );
18   BOOST_CHECK_THROW( parser.readAll(), parser::ParseException );
19
20   parser.setIgnoreInvalidItems( true );
21   BOOST_CHECK_EQUAL( parser.ignoreInvalidItems(), true );
22
23   history.clear();
24   parser.readAll();
25
26   BOOST_CHECK_EQUAL( history.size(), 9 );
27   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRepoAdd>      ( history[0] ) );
28   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataInstall>      ( history[1] ) );
29   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataInstall>      ( history[2] ) );
30   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRemove>       ( history[3] ) );
31   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRepoRemove>   ( history[4] ) );
32   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataRemove>       ( history[5] ) );
33   BOOST_CHECK( dynamic_pointer_cast<HistoryLogData>             ( history[6] ) );
34   BOOST_CHECK( dynamic_pointer_cast<HistoryLogDataStampCommand> ( history[7] ) );
35   BOOST_CHECK( dynamic_pointer_cast<HistoryLogPatchStateChange> ( history[8] ) );
36
37   BOOST_CHECK_EQUAL( (*history[1])[HistoryLogDataInstall::USERDATA_INDEX], "trans|ID" ); // properly (un)escaped?
38   HistoryLogDataInstall::Ptr p = dynamic_pointer_cast<HistoryLogDataInstall>( history[1] );
39   BOOST_CHECK_EQUAL( p->userdata(), "trans|ID" ); // properly (un)escaped?
40 }