Bdb packages | Design docs | Source docs | Guidelines | Recent releases

Search | Site Map .

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/CdbBdbTests/CdbBdbTestCompilation.cc

Go to the documentation of this file.
00001 /// This is the implementation file for CdbBdbTestCompilation class.
00002 /**
00003   * @see CdbBdbTestCompilation
00004   */
00005 
00006 #include "CdbBdbTests/CdbBdbTestCompilation.hh"
00007 #include "CdbBdbTests/CdbBdbTestIterator.hh"
00008 
00009 #include "CdbBase/CdbCommon.hh"
00010 
00011 #include "CdbBase/Cdb.hh"
00012 #include "CdbBase/CdbDatabase.hh"
00013 #include "CdbBase/CdbView.hh"
00014 #include "CdbBase/CdbFolder.hh"
00015 #include "CdbBase/CdbCondition.hh"
00016 #include "CdbBase/CdbObject.hh"
00017 
00018 #include "CdbBase/CdbRevision.hh"
00019 #include "CdbBase/CdbRevisionPolicy.hh"
00020 #include "CdbBase/CdbHistoryEvent.hh"
00021 
00022 #include "CdbAdmin/CdbAdminFactory.hh"
00023 #include "CdbAdmin/CdbMgr.hh"
00024 #include "CdbAdmin/CdbDatabaseMgr.hh"
00025 #include "CdbAdmin/CdbViewMgr.hh"
00026 #include "CdbAdmin/CdbConditionMgr.hh"
00027 #include "CdbAdmin/CdbClustering.hh"
00028 
00029 #include "CdbBase/CdbDatabaseItr.hh"
00030 #include "CdbBase/CdbViewItr.hh"
00031 #include "CdbBase/CdbFolderItr.hh"
00032 #include "CdbBase/CdbConditionItr.hh"
00033 #include "CdbBase/CdbObjectItr.hh"
00034 
00035 #include "CdbBase/CdbHistoryEventItr.hh"
00036 #include "CdbBase/CdbHistoryEventTypeItr.hh"
00037 #include "CdbBase/CdbPathNameItr.hh"
00038 
00039 #include "CdbBase/CdbPathName.hh"
00040 #include "CdbBase/CdbCompositeName.hh"
00041 #include "CdbBase/CdbId.hh"
00042 #include "CdbBase/CdbStateId.hh"
00043 #include "CdbBase/CdbEnvironment.hh"
00044 
00045 #include "CdbAdmin/CdbHistoryBrowser.hh"
00046 
00047 //#include "CdbBdb/CdbBdbTObjectFactory.hh"
00048 
00049 #include "BdbCond/BdbDataListsP.hh"
00050 
00051 #include <iostream.h>
00052 
00053 CdbBdbTestCompilation::CdbBdbTestCompilation( )
00054 {
00055     status( );
00056     smartPointersForInterfaces( );
00057     iterators( );
00058     miscClasses( );
00059 }
00060 
00061 void
00062 CdbBdbTestCompilation::status( )
00063 {
00064     cout << "CdbBdbTestCompilation::status() - OK" << endl
00065          << endl
00066          << "Describing self..." << endl
00067          << endl
00068          << "  This test exercises an alternative to a tradition method" << endl
00069          << "  of reporting status values from functions/methods calls." << endl
00070          << "  An idea is that the status is returned as an Active Object" << endl
00071          << "  rather than just a numeric value of an enumerated type." << endl;
00072 
00073     CdbStatus s1;
00074     CdbStatus s2( CdbStatus::Error );
00075     CdbStatus s3 = CdbStatus::NotImplemented;
00076 
00077     cout << endl
00078          << "Constructors and assignment operator(s)..." << endl
00079          << endl;
00080 
00081     cout << "  (default    ctor)     s1 = " << s1 << endl;
00082     cout << "  (normal     ctor)     s2 = " << s2 << endl;
00083     cout << "  (assignment operator) s3 = " << s3 << endl;
00084 
00085     cout << endl
00086          << "Comparision operators..." << endl
00087          << endl;
00088 
00089     cout << "  s1 " << ( s1 == s1 ? "==" : "!=" ) << " s1" << endl;
00090     cout << "  s1 " << ( s1 != s2 ? "!=" : "==" ) << " s2" << endl;
00091     cout << "  s2 " << ( s2 != s3 ? "!=" : "==" ) << " s3" << endl;
00092     cout << "  s3 " << ( s3 != s1 ? "!=" : "==" ) << " s1" << endl;
00093 
00094     cout << endl;
00095 
00096     cout << "CdbBdbTestCompilation::status() - OK" << endl;
00097 }
00098 
00099 /// Exercise a smart pointer
00100 /**
00101   * This test will check if the smart pointers are correctly
00102   * implemented in therms of their const/nono-const-ness.
00103   */
00104 template < class T >
00105 void
00106 exerciseSmartPointer( const T& thePtr )
00107 {
00108     T ptr1( thePtr );  // copy constructor
00109 
00110     T ptr2;
00111     ptr2 = thePtr;     // assignment operator
00112 }
00113 
00114 void
00115 CdbBdbTestCompilation::smartPointersForInterfaces( )
00116 {
00117     CdbPtr cdbPtr = 0;
00118     assert( cdbPtr.isNull( ));
00119     exerciseSmartPointer( cdbPtr );
00120 
00121     CdbDatabasePtr dPtr;
00122     assert( dPtr.isNull( ));
00123     exerciseSmartPointer( dPtr );
00124 
00125     CdbViewPtr vPtr;
00126     assert( vPtr.isNull( ));
00127     exerciseSmartPointer( vPtr );
00128 
00129     CdbFolderPtr fPtr;
00130     assert( fPtr.isNull( ));
00131     exerciseSmartPointer( fPtr );
00132 
00133     CdbConditionPtr cPtr;
00134     assert( cPtr.isNull( ));
00135     exerciseSmartPointer( cPtr );
00136 
00137     CdbObjectPtr oPtr;
00138     assert( oPtr.isNull( ));
00139     exerciseSmartPointer( oPtr );
00140 
00141     CdbRevisionPtr rPtr;
00142     assert( rPtr.isNull( ));
00143     exerciseSmartPointer( rPtr );
00144 
00145     CdbHistoryEventPtr ePtr;
00146     assert( ePtr.isNull( ));
00147     exerciseSmartPointer( ePtr );
00148 
00149     CdbAdminFactoryPtr aFactoryPtr;
00150     assert( aFactoryPtr.isNull( ));
00151 
00152     CdbMgrPtr cdbMgrPtr;
00153     assert( cdbMgrPtr.isNull( ));
00154     exerciseSmartPointer( cdbMgrPtr );
00155 
00156     CdbDatabaseMgrPtr dMgrPtr;
00157     assert( dMgrPtr.isNull( ));
00158     exerciseSmartPointer( dMgrPtr );
00159 
00160     CdbViewMgrPtr vMgrPtr;
00161     assert( vMgrPtr.isNull( ));
00162     exerciseSmartPointer( vMgrPtr );
00163 
00164     CdbConditionMgrPtr cMgrPtr;
00165     assert( cMgrPtr.isNull( ));
00166     exerciseSmartPointer( cMgrPtr );
00167 
00168     CdbClusteringPtr clustPtr;
00169     assert( clustPtr.isNull( ));
00170     exerciseSmartPointer( clustPtr );
00171 
00172     cout << "CdbBdbTestCompilation::smartPointersForInterfaces() - OK" << endl;
00173 }
00174 
00175 void
00176 CdbBdbTestCompilation::iterators( )
00177 {
00178     CdbBdbTestIterator< CdbDatabaseItr         >::exerciseIterator( );
00179     CdbBdbTestIterator< CdbViewItr             >::exerciseIterator( );
00180     CdbBdbTestIterator< CdbFolderItr           >::exerciseIterator( );
00181     CdbBdbTestIterator< CdbConditionItr        >::exerciseIterator( );
00182     CdbBdbTestIterator< CdbObjectItr           >::exerciseIterator( );
00183     CdbBdbTestIterator< CdbHistoryEventItr     >::exerciseIterator( );
00184     CdbBdbTestIterator< CdbHistoryEventTypeItr >::exerciseIterator( );
00185     CdbBdbTestIterator< CdbPathNameItr         >::exerciseIterator( );
00186 
00187     cout << "CdbBdbTestCompilation::iterators() - OK" << endl;
00188 }
00189 
00190 void
00191 CdbBdbTestCompilation::miscClasses( )
00192 {
00193     cout << "CdbBdbTestCompilation::miscClasses() - BEGIN" << endl;
00194 
00195     CdbPathName pName;
00196     CdbPathName pExtName( "/emc/EmcFooClassP" );
00197 
00198     CdbId id;
00199     assert(( 0 == id.origin ) && ( 0 == id.local ));
00200 
00201     CdbStateId stateId;
00202     assert( !stateId.isValid( ));
00203 
00204     CdbHistoryBrowser hBrowser;
00205     assert( hBrowser.parent( ).isNull( ));
00206 
00207     CdbCompositeName cName1;
00208     assert( !cName1.isValid( ));
00209 
00210     CdbCompositeName cName2( "" );
00211     assert( !cName2.isValid( ));
00212 
00213     CdbCompositeName cName3( "::" );
00214     assert( !cName3.isValid( ));
00215 
00216     CdbCompositeName cName4( "first" );
00217     assert( !cName4.isValid( ));
00218 
00219     CdbCompositeName cName5( "first::" );
00220     assert( !cName5.isValid( ));
00221 
00222     CdbCompositeName cName6( "::last" );
00223     assert( !cName6.isValid( ));
00224 
00225     CdbCompositeName cName7( "first::last" );
00226     assert( cName7.isValid( ));
00227 
00228     cout << cName7.getName( ).c_str( ) << endl;
00229     cout << cName7.first( ).c_str( ) << CdbCompositeName::separator( ) << cName7.last( ).c_str( ) << endl;
00230 
00231     CdbCompositeName cName8( "first", 0 );
00232     assert( !cName8.isValid( ));
00233 
00234     CdbCompositeName cName9( 0, "last" );
00235     assert( !cName9.isValid( ));
00236 
00237     CdbCompositeName cName10( "first::", "last" );
00238     assert( !cName10.isValid( ));
00239 
00240     CdbCompositeName cName11( "first", "::last" );
00241     assert( !cName11.isValid( ));
00242 
00243     CdbCompositeName cName12( "first", "last" );
00244     assert( cName12.isValid( ));
00245 
00246     bool areEqual;
00247     
00248     areEqual = ( cName8 == cName1 );
00249     assert( !areEqual );
00250 
00251     areEqual = ( cName7 == cName12 );
00252     assert( areEqual );
00253 
00254 //////////////////////////////////////////////////////////
00255 // WARNING: Disabled because the application does not link
00256 //          on Linux.
00257 //
00258 //    CdbBdbTObjectFactory< const char* const, BdbDataListsP >* oFactory = 0;
00259 //
00260 
00261     cout << "CdbBdbTestCompilation::miscClasses() - END" << endl;
00262 }
00263 
00264 /////////////////
00265 // End Of File //
00266 /////////////////

 


BaBar Public Site | SLAC | News | Links | Who's Who | Contact Us

Page Owner: Jacek Becla
Last Update: October 04, 2002