- rework the testsuite after new boost in factory broke it.
[platform/upstream/libzypp.git] / tests / parser / yum / PatchFileReader_test.cc
1 #include <boost/test/unit_test.hpp>
2
3 #include "zypp/base/Easy.h"
4 #include "zypp/Url.h"
5 #include "zypp/PathInfo.h"
6 #include "zypp/Pathname.h"
7 #include "zypp/data/ResolvableData.h"
8 #include "zypp/parser/yum/PatchFileReader.h"
9
10 using namespace std;
11 using namespace boost::unit_test;
12 using namespace zypp;
13 using namespace zypp::parser::yum;
14
15 #define DATADIR (Pathname(TESTS_SRC_DIR) + "parser/yum/data")
16
17 struct Check_fetchmsttfonts
18 {
19   bool operator()( const data::Patch_Ptr & data_r )
20   {
21     BOOST_CHECK( data_r );
22     if ( data_r )
23     {
24       BOOST_CHECK_EQUAL( data_r->name, "fetchmsttfonts.sh" );
25       BOOST_CHECK_EQUAL( data_r->edition, Edition("4347", "0") );
26       BOOST_CHECK_EQUAL( data_r->arch, Arch_noarch );
27
28       BOOST_CHECK_EQUAL( data_r->summary.text().size(), 41 );
29       BOOST_CHECK_EQUAL( data_r->description.text().size(), 296 );
30       BOOST_CHECK_EQUAL( data_r->licenseToConfirm.text().size(), 4911 );
31
32       BOOST_CHECK_EQUAL( data_r->id, "fetchmsttfonts.sh-4347" );
33       BOOST_CHECK_EQUAL( data_r->timestamp, Date(20070919) );
34       BOOST_CHECK_EQUAL( data_r->category, "optional" );
35
36       BOOST_CHECK_EQUAL( data_r->atoms.size(), 1 );
37       if ( data_r->atoms.size() == 1 )
38       {
39         data::Script_Ptr scr( dynamic_pointer_cast<data::Script>( *data_r->atoms.begin() ) );
40         if ( scr )
41         {
42           BOOST_CHECK_EQUAL( scr->name, "fetchmsttfonts.sh-4347-patch-fetchmsttfonts.sh-2" );
43           BOOST_CHECK_EQUAL( scr->edition, Edition("4347", "1") );
44           BOOST_CHECK_EQUAL( scr->arch, Arch_noarch );
45
46           BOOST_CHECK_EQUAL( scr->doScript.size(), 3718);
47           BOOST_CHECK_EQUAL( scr->undoScript.size(), 0 );
48         }
49         else
50         {
51           BOOST_CHECK_MESSAGE( false, "Atom is not a Script" );
52         }
53       }
54     }
55     return true;
56   }
57 };
58
59 void patch_read_test( const Pathname & file_r )
60 {
61   cout << "Testing : " << file_r << endl;
62   PatchFileReader( file_r, Check_fetchmsttfonts() );
63 }
64
65 BOOST_AUTO_TEST_CASE(patch_read)
66 {
67   patch_read_test(DATADIR + "patch-fetchmsttfonts.sh-4347.xml");
68 }