• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

apt.test.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include <ept/config.h>
00003 #include <ept/core/apt.h>
00004 #include <ept/core/list.h>
00005 #include <ept/test.h>
00006 
00007 using namespace ept::core;
00008 
00009 struct TestCoreApt : AptTestEnvironment
00010 {
00011     package::Source pkgs;
00012     version::Source vers;
00013     ept::Token t;
00014 
00015     TestCoreApt() : pkgs( db ), vers( db ) {
00016         t._id = "sp";
00017     }
00018 
00019     Test token() {
00020         assert_eq( t.package(), "sp" );
00021         assert_eq( t.version(), "" );
00022     }
00023 
00024     Test tokenVersion() {
00025         ept::Token t2;
00026         t2._id = "libwibble-dev_0.1.10";
00027         assert_eq( t2.package(), "libwibble-dev" );
00028         assert_eq( t2.version(), "0.1.10" );
00029     }
00030 
00031     Test packageName() {
00032         assert_eq( t.package(), pkgs.get< package::Name >( t ) );
00033     }
00034 
00035     template< typename List >
00036     void checkPackageNameList( List l ) {
00037         while ( !l.empty() ) {
00038             assert_eq( l.token().package(), l.property() );
00039             l = l.tail();
00040         }
00041     }
00042 
00043     template< typename List >
00044     void checkVersionPackageList( List l ) {
00045         while ( !l.empty() ) {
00046             assert_eq( l.property().package(), l.token().package() );
00047             assert_eq( l.property().version(), "" );
00048             l = l.tail();
00049         }
00050     }
00051 
00052     Test packageCount() {
00053         assert_eq( list::count( pkgs.list< package::Name >() ),
00054                    3778 );
00055     }
00056 
00057     Test packageNameList() {
00058         checkPackageNameList( pkgs.list< package::Name >() );
00059     }
00060 
00061     Test versionCount() {
00062         assert_eq( list::count( vers.list< version::Package >() ),
00063                   1808 );
00064     }
00065 
00066     Test versionPackage() {
00067         checkVersionPackageList( vers.list< version::Package >() );
00068     }
00069 
00070     Test validate() {
00071         assert_eq( t, db.validate( t ) );
00072         assert_neq( ept::Token( "libfoobar" ),
00073                     db.validate( ept::Token( "libfooar" ) ) );
00074         assert_eq( ept::Token(), db.validate( ept::Token( "libfoobar" ) ) );
00075     }
00076 
00077     Test packageState() {
00078         assert( db.packageState( t ) & PackageState::Keep );
00079     }
00080 
00081     Test packageState2() {
00082         assert( pkgs.get< package::State >( t ) & PackageState::Keep );
00083     }
00084 
00085     Test exists() {
00086         assert( pkgs.exists( t ) );
00087         assert( !pkgs.exists( ept::Token( "nonexistent-package" ) ) );
00088     }
00089 
00090     Test invalidate() {
00091         assert( pkgs.exists( t ) );
00092         db.invalidate();
00093         assert( pkgs.exists( t ) );
00094     }
00095 };

Generated on Fri Oct 14 2011 17:41:02 for libept by  doxygen 1.7.1