00001 #include <stdio.h>
00002 #include <stdlib.h>
00003 #include "TestBase.h"
00004 #include "rodsClient.h"
00005 #include "parseCommandLine.h"
00006 #include "readServerConfig.h"
00007 #include "rodsUser.h"
00008 #include "icatHighLevelRoutines.h"
00009 #include "icatMidLevelRoutines.h"
00010
00011 #include "../../icat/src/icatHighLevelRoutines.c"
00012
00013 using namespace std;
00014
00015 static char **g_argv;
00016
00017
00018
00019
00020 class TestChlEnv : public ::TestBase {
00021 protected:
00022 rsComm_t *_comm;
00023 rodsServerConfig_t _serverConfig;
00024
00025 virtual void SetUp() {
00026 rodsLogLevel(LOG_NOTICE);
00027 TestBase::setUserPass(g_argv[1], g_argv[2]);
00028 _comm = (rsComm_t*)malloc (sizeof (rsComm_t));
00029 memset (_comm, 0, sizeof (rsComm_t));
00030 if(getRodsEnv (&_myEnv) < 0) {
00031 cerr << "getRodsEnv() failed" << endl;
00032 exit(1);
00033 }
00034 memset(&_serverConfig, 0, sizeof(_serverConfig));
00035 int err;
00036 if((err=readServerConfig(&_serverConfig)) != 0) {
00037 cerr << "Failed to read server config: " << err << endl;
00038 exit(1);
00039 }
00040 strncpy(_comm->clientUser.userName, _myEnv.rodsUserName,
00041 sizeof(_comm->clientUser.userName));
00042 strncpy(_comm->clientUser.rodsZone, _myEnv.rodsZone,
00043 sizeof(_comm->clientUser.rodsZone));
00044 if(chlOpen(_serverConfig.DBUsername, _serverConfig.DBPassword) !=
00045 0) {
00046 cout << "TestChlEnv::Setup():chlOpen() - failed" << endl;
00047 exit(1);
00048 }
00049 }
00050
00051 virtual void TearDown() {
00052 if(chlClose() != 0) {
00053 cout << "TestChlEnv::TearDown():chlCloseEnv() - failed" << endl;
00054 }
00055 }
00056 };
00057
00058 TEST_F(TestChlEnv, HandlesConnected) {
00059 EXPECT_EQ(1, chlIsConnected());
00060 }
00061
00062 TEST_F(TestChlEnv, HandlesGetLocalZone) {
00063 EXPECT_TRUE(strcmp(chlGetLocalZone(), "tempZone") == 0);
00064 }
00065
00066 TEST_F(TestChlEnv, HandlesDir) {
00067 collInfo_t collInp;
00068 strncpy(collInp.collName, "kag", sizeof(collInp.collName));
00069 EXPECT_EQ(0, chlRegColl(_comm, &collInp));
00070 EXPECT_EQ(0, chlDelColl(_comm, &collInp));
00071 }
00072
00073 int main(int argc, char **argv) {
00074 g_argv = argv;
00075 ::testing::GTEST_FLAG(output) = "xml:icatLowLevelOdbc.xml";
00076 ::testing::InitGoogleTest(&argc, argv);
00077 return RUN_ALL_TESTS();
00078 }
00079