72fd91c62ec301e1fffdd118d52df504c070cab6
[platform/upstream/libzypp.git] / tests / repo / RepoLicense_test.cc
1 #include <iostream>
2
3 #include <boost/test/auto_unit_test.hpp>
4
5 #include "zypp/ZYppFactory.h"
6 #include "zypp/RepoManager.h"
7 #include "TestSetup.h"
8
9 using namespace boost::unit_test;
10 using namespace zypp;
11 using std::cout;
12 using std::endl;
13
14 static TestSetup test( TestSetup::initLater );
15 struct TestInit {
16   TestInit() {
17     test = TestSetup( Arch_x86_64 );
18   }
19   ~TestInit() { test.reset(); }
20 };
21 BOOST_GLOBAL_FIXTURE( TestInit );
22
23 const Pathname DATADIR( TESTS_SRC_DIR "/repo/RepoLicense" );
24
25 ///////////////////////////////////////////////////////////////////
26
27 BOOST_AUTO_TEST_CASE(repolicense)
28 {
29   std::string repo( "repo" );
30   test.loadRepo( DATADIR/repo, repo );
31   ResPool pool( ResPool::instance() );
32   const RepoInfo & ri( pool.knownRepositoriesBegin()->info() );
33
34   std::string prod;     // <data type="license">
35   BOOST_CHECK_EQUAL( ri.hasLicense( prod ),             true );
36   BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ),    false );
37   BOOST_CHECK_EQUAL( ri.getLicenseLocales( prod ),      LocaleSet({ Locale(),Locale("de") }) );
38
39   prod = "prod";        // <data type="license-prod">
40   BOOST_CHECK_EQUAL( ri.hasLicense( prod ),             true );
41   BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ),    true );
42   BOOST_CHECK_EQUAL( ri.getLicenseLocales( prod ),      LocaleSet({ Locale(), Locale("de"), Locale("fr") }) );
43
44   prod = "noprod";      // <data type="license-noprod"> is not available
45   BOOST_CHECK_EQUAL( ri.hasLicense( prod ),             false );
46   BOOST_CHECK_EQUAL( ri.needToAcceptLicense( prod ),    false );
47   BOOST_CHECK      ( ri.getLicenseLocales( prod ).empty() );
48 }