libept
core/apt.test.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 #include <ept/config.h>
3 #include <ept/core/apt.h>
4 #include <ept/core/list.h>
5 #include <ept/test.h>
6 
7 using namespace ept::core;
8 
10 {
14 
15  TestCoreApt() : pkgs( db ), vers( db ) {
16  t._id = "sp";
17  }
18 
19  Test token() {
20  assert_eq( t.package(), "sp" );
21  assert_eq( t.version(), "" );
22  }
23 
24  Test tokenVersion() {
25  ept::Token t2;
26  t2._id = "libwibble-dev_0.1.10";
27  assert_eq( t2.package(), "libwibble-dev" );
28  assert_eq( t2.version(), "0.1.10" );
29  }
30 
31  Test packageName() {
32  assert_eq( t.package(), pkgs.get< package::Name >( t ) );
33  }
34 
35  template< typename List >
36  void checkPackageNameList( List l ) {
37  while ( !l.empty() ) {
38  assert_eq( l.token().package(), l.property() );
39  l = l.tail();
40  }
41  }
42 
43  template< typename List >
44  void checkVersionPackageList( List l ) {
45  while ( !l.empty() ) {
46  assert_eq( l.property().package(), l.token().package() );
47  assert_eq( l.property().version(), "" );
48  l = l.tail();
49  }
50  }
51 
52  Test packageCount() {
53  assert_eq( list::count( pkgs.list< package::Name >() ),
54  3778 );
55  }
56 
57  Test packageNameList() {
58  checkPackageNameList( pkgs.list< package::Name >() );
59  }
60 
61  Test versionCount() {
62  assert_eq( list::count( vers.list< version::Package >() ),
63  1808 );
64  }
65 
66  Test versionPackage() {
67  checkVersionPackageList( vers.list< version::Package >() );
68  }
69 
70  Test validate() {
71  assert_eq( t, db.validate( t ) );
72  assert_neq( ept::Token( "libfoobar" ),
73  db.validate( ept::Token( "libfooar" ) ) );
74  assert_eq( ept::Token(), db.validate( ept::Token( "libfoobar" ) ) );
75  }
76 
77  Test packageState() {
78  assert( db.packageState( t ) & PackageState::Keep );
79  }
80 
81  Test packageState2() {
82  assert( pkgs.get< package::State >( t ) & PackageState::Keep );
83  }
84 
85  Test exists() {
86  assert( pkgs.exists( t ) );
87  assert( !pkgs.exists( ept::Token( "nonexistent-package" ) ) );
88  }
89 
90  Test invalidate() {
91  assert( pkgs.exists( t ) );
92  db.invalidate();
93  assert( pkgs.exists( t ) );
94  }
95 };