// GssCredentialManager_t.cxx #include #include #include "dataset_util/ThreadCredential.h" #include "dataset_credential/GssCredentialManager.h" #include "dataset_credential/CredentialSelectionCatalog.h" using std::string; using std::cout; using std::endl; using dset::GssCredential; using dset::GssCredentialManager; using dset::CredentialSelectionCatalog; void msg(string txt) { cout << "*** "; cout << txt; cout << " ***" << endl; } typedef CredentialSelectionCatalog::Name Name; int GssCredentialManager_t() { msg("Fetch default instance of CSC."); assert( CredentialSelectionCatalog::create_default_instance() == 0 ); CredentialSelectionCatalog& sc = CredentialSelectionCatalog::default_instance(); cout << sc << endl; assert( sc.is_valid() ); msg("Fetch credential"); GssCredential cred; cout << &cred << endl; string dn = cred.name(); assert( cred.is_valid() ); assert( dn.size() ); msg("Insert credential"); assert( GssCredentialManager::size() == 0 ); assert( GssCredentialManager::insert(cred) == 0 ); assert( GssCredentialManager::size() == 1 ); msg("Check inserted credential"); GssCredential* pcred1 = GssCredentialManager::get(dn); cout << pcred1 << endl; assert( pcred1 != 0 ); assert( pcred1 != &cred ); assert( pcred1->name() == dn ); assert( GssCredentialManager::insert(cred) == 0 ); assert( GssCredentialManager::size() == 1 ); GssCredential* pcred2 = GssCredentialManager::get(dn); cout << pcred2 << endl; // Credential is new object on rh73 and same object on rhe3. //assert( pcred2 != pcred1 ); assert( pcred2 != &cred ); msg("Set credential"); GssCredential cred1; assert( GssCredentialManager::name().size() == 0 ); assert( GssCredentialManager::credential() == 0 ); assert( GssCredentialManager::set_name(dn) == 0 ); assert( GssCredentialManager::name() == dn ); cout << GssCredentialManager::credential() << endl; assert( GssCredentialManager::credential() == pcred2 ); msg("Set thread credential owner"); ThreadCredential().set_default_owner("Annette"); cout << ThreadCredential() << endl; msg("Insert owner into CSC"); assert( GssCredentialManager::set_owner("this_is_me") == 0 ); msg("Check owner"); Name owner = GssCredentialManager::owner(); cout << "Owner: " << owner << endl; assert( owner.size() != 0 ); msg("Unset credential"); assert( GssCredentialManager::unset_name() == 0 ); assert( GssCredentialManager::name().size() == 0 ); assert( GssCredentialManager::credential() == 0 ); msg("Remove credential"); assert( GssCredentialManager::remove(dn) == 0 ); assert( GssCredentialManager::get(dn) == 0 ); assert( GssCredentialManager::size() == 0 ); return 0; } #ifdef CTEST_MAIN int main() { return GssCredentialManager_t(); } #endif