![]() |
|
|
Bdb packages | Design docs | Source docs | Guidelines | Recent releases |
|
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