diff --git a/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h b/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h index 3df47cabe..8b2b814ba 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h +++ b/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.19 $ + Version : $Revision: 1.20 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h,v $ ------------------------------------------------------------------------------*/ @@ -87,7 +87,7 @@ using namespace boost::posix_time; * xmlns:xbmf="http://www.streamonthefly.org/xbmf" * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > * <dc:title >File Title txt</dc:title> - * <dcterms:extent >123</dcterms:extent> + * <dcterms:extent >00:02:30.000000</dcterms:extent> * ... * </metadata> * </audioClip> @@ -124,7 +124,7 @@ using namespace boost::posix_time; * * * @author $Author: fgerlits $ - * @version $Revision: 1.19 $ + * @version $Revision: 1.20 $ */ class AudioClip : public Configurable, public Playable diff --git a/livesupport/modules/core/include/LiveSupport/Core/TagConversion.h b/livesupport/modules/core/include/LiveSupport/Core/TagConversion.h index c58113150..3c52468ee 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/TagConversion.h +++ b/livesupport/modules/core/include/LiveSupport/Core/TagConversion.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Attic/TagConversion.h,v $ ------------------------------------------------------------------------------*/ @@ -65,7 +65,7 @@ using namespace LiveSupport::Core; * * For a description of these metadata tag standards, see * http://www.id3.org/id3v2.4.0-frames.txt - * and http://dublincore.org/documents/dces/. + * and http://dublincore.org/documents/dcmi-terms/. * * This object has to be configured with an XML configuration element * called tagConversionTable. This may look like the following: @@ -79,12 +79,17 @@ using namespace LiveSupport::Core; * <tag> * <id3>Artist</id3> * <id3>TPE1</id3> - * <dc>dcterms:extent</dc> + * <dc>dc:creator</dc> * </tag> * ... * </tagConversionTable> * - * + * + * The id3 tag names in the table should be one of the id3v1 tag names + * Artist, Title, Album, Comment, Genre, Year, Track, or one of the + * four-letter id3v2 tag abbreviations, e.g., TLEN (length) or + * TOPE (original performer) etc. + * * Note that more than one id3 tag name can map to the same dc tag name. * * The DTD for the above element is: @@ -92,12 +97,12 @@ using namespace LiveSupport::Core; *

  *  <!ELEMENT tagConversionTable (tag*) >
  *  <!ATTLIST tag    (id3+, dc) >
- *  <!ATTLIST id3    (#CDATA) >
- *  <!ATTLIST dc     (#CDATA) >
+ *  <!ATTLIST id3    (#PCDATA) >
+ *  <!ATTLIST dc     (#PCDATA) >
  *  
* * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class TagConversion { diff --git a/livesupport/modules/core/include/LiveSupport/Core/XmlRpcTools.h b/livesupport/modules/core/include/LiveSupport/Core/XmlRpcTools.h index d883883aa..98c171a19 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/XmlRpcTools.h +++ b/livesupport/modules/core/include/LiveSupport/Core/XmlRpcTools.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.2 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/XmlRpcTools.h,v $ ------------------------------------------------------------------------------*/ @@ -73,8 +73,8 @@ using namespace LiveSupport::Core; * and XmlRpcValues. Used by almost all XmlRpcServerMethod subclasses * in the Scheduler. * - * @author $Author: maroy $ - * @version $Revision: 1.2 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.3 $ */ class XmlRpcTools { @@ -455,6 +455,30 @@ class XmlRpcTools extractSessionId(XmlRpc::XmlRpcValue & xmlRpcValue) throw (std::invalid_argument); + /** + * Extract the login name from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return a std::string that was found in the XML-RPC parameter. + * @exception std::invalid_argument if there was no login + * member in xmlRpcValue + */ + static Ptr::Ref + extractLoginName(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + + /** + * Extract the password from the XML-RPC parameters. + * + * @param xmlRpcValue the XML-RPC parameter to extract from. + * @return a std::string that was found in the XML-RPC parameter. + * @exception std::invalid_argument if there was no sessionId + * member in xmlRpcValue + */ + static Ptr::Ref + extractPassword(XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument); + }; /* ================================================= external data structures */ diff --git a/livesupport/modules/core/src/XmlRpcTools.cxx b/livesupport/modules/core/src/XmlRpcTools.cxx index c4d322e08..eae44902f 100644 --- a/livesupport/modules/core/src/XmlRpcTools.cxx +++ b/livesupport/modules/core/src/XmlRpcTools.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.2 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/XmlRpcTools.cxx,v $ ------------------------------------------------------------------------------*/ @@ -119,6 +119,16 @@ static const std::string fadeOutName = "fadeOut"; *----------------------------------------------------------------------------*/ static const std::string sessionIdName = "sessionId"; +/*------------------------------------------------------------------------------ + * The name of the login name member in the XML-RPC parameter structure + *----------------------------------------------------------------------------*/ +static const std::string loginName = "login"; + +/*------------------------------------------------------------------------------ + * The name of the password member in the XML-RPC parameter structure + *----------------------------------------------------------------------------*/ +static const std::string passwordName = "password"; + /* ================================================ local constants & macros */ @@ -663,9 +673,8 @@ XmlRpcTools :: playLogEntryToXmlRpcValue( *----------------------------------------------------------------------------*/ void XmlRpcTools :: playLogVectorToXmlRpcValue( - Ptr::Ref> >::Ref - playLogVector, - XmlRpc::XmlRpcValue & returnValue) + Ptr::Ref> >::Ref playLogVector, + XmlRpc::XmlRpcValue & returnValue) throw () { returnValue.setSize(playLogVector->size()); @@ -704,3 +713,43 @@ XmlRpcTools :: extractSessionId( return id; } + +/*------------------------------------------------------------------------------ + * Extract the login name from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractLoginName( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(loginName) + || xmlRpcValue[loginName].getType() + != XmlRpc::XmlRpcValue::TypeString) { + throw std::invalid_argument("missing or bad login name argument"); + } + + Ptr::Ref loginName(new std::string( + xmlRpcValue[loginName] )); + return loginName; +} + + +/*------------------------------------------------------------------------------ + * Extract the password from an XML-RPC function call parameter + *----------------------------------------------------------------------------*/ +Ptr::Ref +XmlRpcTools :: extractPassword( + XmlRpc::XmlRpcValue & xmlRpcValue) + throw (std::invalid_argument) +{ + if (!xmlRpcValue.hasMember(passwordName) + || xmlRpcValue[passwordName].getType() + != XmlRpc::XmlRpcValue::TypeString) { + throw std::invalid_argument("missing or bad password argument"); + } + + Ptr::Ref password(new std::string( + xmlRpcValue[passwordName] )); + return password; +} + diff --git a/livesupport/products/scheduler/etc/Makefile.in b/livesupport/products/scheduler/etc/Makefile.in index e7df9f0d1..acddb32b2 100644 --- a/livesupport/products/scheduler/etc/Makefile.in +++ b/livesupport/products/scheduler/etc/Makefile.in @@ -21,7 +21,7 @@ # # # Author : $Author: fgerlits $ -# Version : $Revision: 1.48 $ +# Version : $Revision: 1.49 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $ # # @configure_input@ @@ -186,7 +186,10 @@ SCHEDULER_OBJS = ${TMP_DIR}/SignalDispatcher.o \ ${TMP_DIR}/GeneratePlayReportMethod.o \ ${TMP_DIR}/UpdateFadeInFadeOutMethod.o \ ${TMP_DIR}/PlaylistEventContainer.o \ - ${TMP_DIR}/PlaylistEvent.o + ${TMP_DIR}/PlaylistEvent.o \ + ${TMP_DIR}/ResetStorageMethod.o \ + ${TMP_DIR}/LoginMethod.o \ + ${TMP_DIR}/LogoutMethod.o SCHEDULER_EXE_OBJS = ${SCHEDULER_OBJS} \ @@ -201,31 +204,37 @@ SCHEDULER_EXE_LIBS = -l${EVENT_SCHEDULER_LIB} -l${PLAYLIST_EXECUTOR_LIB} \ TEST_RUNNER_OBJS = ${SCHEDULER_OBJS} \ ${TMP_DIR}/TestRunner.o \ ${TMP_DIR}/SchedulerDaemonTest.o \ - ${TMP_DIR}/RpcUploadPlaylistTest.o \ - ${TMP_DIR}/RpcDisplayScheduleTest.o \ - ${TMP_DIR}/RpcDisplayPlaylistTest.o \ - ${TMP_DIR}/RpcRemoveFromScheduleTest.o \ - ${TMP_DIR}/RpcRescheduleTest.o \ - ${TMP_DIR}/RpcAddAudioClipToPlaylistTest.o \ + ${TMP_DIR}/ResetStorageMethodTest.o \ ${TMP_DIR}/GetSchedulerTimeMethodTest.o \ ${TMP_DIR}/RpcGetSchedulerTimeTest.o \ ${TMP_DIR}/GetVersionMethodTest.o \ ${TMP_DIR}/RpcGetVersionTest.o \ ${TMP_DIR}/UploadPlaylistMethodTest.o \ + ${TMP_DIR}/RpcUploadPlaylistTest.o \ ${TMP_DIR}/DisplayScheduleMethodTest.o \ - ${TMP_DIR}/DisplayPlaylistMethodTest.o \ + ${TMP_DIR}/RpcDisplayScheduleTest.o \ ${TMP_DIR}/RemoveFromScheduleMethodTest.o \ + ${TMP_DIR}/RpcRemoveFromScheduleTest.o \ ${TMP_DIR}/RescheduleMethodTest.o \ + ${TMP_DIR}/RpcRescheduleTest.o \ ${TMP_DIR}/PostgresqlScheduleTest.o \ ${TMP_DIR}/DeletePlaylistMethodTest.o \ + ${TMP_DIR}/RpcDeletePlaylistTest.o \ + ${TMP_DIR}/DisplayPlaylistMethodTest.o \ + ${TMP_DIR}/RpcDisplayPlaylistTest.o \ ${TMP_DIR}/DisplayPlaylistsMethodTest.o \ + ${TMP_DIR}/RpcDisplayPlaylistsTest.o \ ${TMP_DIR}/OpenPlaylistForEditingMethodTest.o \ ${TMP_DIR}/CreatePlaylistMethodTest.o \ + ${TMP_DIR}/RpcCreatePlaylistTest.o \ ${TMP_DIR}/AddAudioClipToPlaylistMethodTest.o \ + ${TMP_DIR}/RpcAddAudioClipToPlaylistTest.o \ ${TMP_DIR}/RemoveAudioClipFromPlaylistMethodTest.o \ ${TMP_DIR}/ValidatePlaylistMethodTest.o \ ${TMP_DIR}/DisplayAudioClipMethodTest.o \ + ${TMP_DIR}/RpcDisplayAudioClipTest.o \ ${TMP_DIR}/DisplayAudioClipsMethodTest.o \ + ${TMP_DIR}/RpcDisplayAudioClipsTest.o \ ${TMP_DIR}/SavePlaylistMethodTest.o \ ${TMP_DIR}/RevertEditedPlaylistMethodTest.o \ ${TMP_DIR}/PostgresqlPlayLogTest.o \ diff --git a/livesupport/products/scheduler/src/LoginMethod.cxx b/livesupport/products/scheduler/src/LoginMethod.cxx new file mode 100644 index 000000000..11d315cbf --- /dev/null +++ b/livesupport/products/scheduler/src/LoginMethod.cxx @@ -0,0 +1,124 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/LoginMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Authentication/AuthenticationClientFactory.h" +#include "LiveSupport/Core/XmlRpcTools.h" + +#include "LoginMethod.h" + + +using namespace LiveSupport::Authentication; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string LoginMethod::methodName = "login"; + +/*------------------------------------------------------------------------------ + * The ID of this method for error reporting purposes. + *----------------------------------------------------------------------------*/ +const int LoginMethod::errorId = 2000; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +LoginMethod :: LoginMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Execute the XML-RPC function call. + * (Overrides 'execute' in XmlRpcServerMethod.) + *----------------------------------------------------------------------------*/ +void +LoginMethod :: execute(XmlRpc::XmlRpcValue & rootParameter, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException) +{ + if (!rootParameter.valid() || rootParameter.size() != 1) { + XmlRpcTools::markError(errorId+1, "invalid argument format", + returnValue); + return; + } + XmlRpc::XmlRpcValue parameters = rootParameter[0]; + + Ptr::Ref loginName; + try{ + loginName = XmlRpcTools::extractLoginName(parameters); + } catch (XmlRpcException &e) { + XmlRpcTools::markError(errorId+2, "missing login argument", + returnValue); + return; + } + + Ptr::Ref password; + try{ + password = XmlRpcTools::extractPassword(parameters); + } catch (XmlRpcException &e) { + XmlRpcTools::markError(errorId+3, "missing password argument", + returnValue); + return; + } + + Ptr::Ref + acf = AuthenticationClientFactory::getInstance(); + Ptr::Ref + authentication = acf->getAuthenticationClient(); + + Ptr::Ref sessionId; + try { + sessionId = authentication->login(*loginName, *password); + } catch (XmlRpcException &e) { + std::string eMsg = "authentication login() returned error:\n"; + eMsg += e.what(); + XmlRpcTools::markError(errorId+4, eMsg, returnValue); + return; + } + + XmlRpcTools::sessionIdToXmlRpcValue(sessionId, returnValue); +} + diff --git a/livesupport/products/scheduler/src/LoginMethod.h b/livesupport/products/scheduler/src/LoginMethod.h new file mode 100644 index 000000000..2322ee37a --- /dev/null +++ b/livesupport/products/scheduler/src/LoginMethod.h @@ -0,0 +1,150 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/LoginMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef LoginMethod_h +#define LoginMethod_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include +#include +#include + +#include "LiveSupport/Core/Ptr.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to log in using the authentication server. + * + * The name of the method when called through XML-RPC is "login". + * + * The expected parameter is an XML-RPC structure, with the following + * members: + *
    + *
  • login - string - the login name
  • + *
  • password - string - the password.
  • + *
+ * + * The XML-RPC function returns an XML-RPC structure, containing the following + * fields: + *
    + *
  • sessionId - string - a new session ID.
  • + *
+ * + * In case of an error, a standard XML-RPC fault response is generated, + * and a { faultCode, faultString } structure is returned. The + * possible errors are: + *
    + *
  • 2001 - invalid argument format
  • + *
  • 2002 - missing login argument
  • + *
  • 2003 - missing password argument
  • + *
  • 2004 - the authentication server reported an error
  • + *
+ * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class LoginMethod : public XmlRpc::XmlRpcServerMethod +{ + private: + /** + * The name of this method, as it will be registered into the + * XML-RPC server. + */ + static const std::string methodName; + + /** + * The ID of this method for error reporting purposes. + */ + static const int errorId; + + + public: + /** + * A default constructor, for testing purposes. + */ + LoginMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + LoginMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the login command on the Scheduler daemon. + * + * @param parameters XML-RPC function call parameters + * @param returnValue the return value of the call (out parameter) + */ + void + execute( XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // LoginMethod_h + diff --git a/livesupport/products/scheduler/src/LogoutMethod.cxx b/livesupport/products/scheduler/src/LogoutMethod.cxx new file mode 100644 index 000000000..00c86f124 --- /dev/null +++ b/livesupport/products/scheduler/src/LogoutMethod.cxx @@ -0,0 +1,112 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/LogoutMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Authentication/AuthenticationClientFactory.h" +#include "LiveSupport/Core/XmlRpcTools.h" + +#include "LogoutMethod.h" + + +using namespace LiveSupport::Authentication; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string LogoutMethod::methodName = "logout"; + +/*------------------------------------------------------------------------------ + * The ID of this method for error reporting purposes. + *----------------------------------------------------------------------------*/ +const int LogoutMethod::errorId = 2100; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +LogoutMethod :: LogoutMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Execute the XML-RPC function call. + * (Overrides 'execute' in XmlRpcServerMethod.) + *----------------------------------------------------------------------------*/ +void +LogoutMethod :: execute(XmlRpc::XmlRpcValue & rootParameter, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException) +{ + if (!rootParameter.valid() || rootParameter.size() != 1) { + XmlRpcTools::markError(errorId+1, "invalid argument format", + returnValue); + return; + } + XmlRpc::XmlRpcValue parameters = rootParameter[0]; + + Ptr::Ref sessionId; + try{ + sessionId = XmlRpcTools::extractSessionId(parameters); + } catch (XmlRpcException &e) { + XmlRpcTools::markError(errorId+20, "missing logout argument", + returnValue); + return; + } + + Ptr::Ref + acf = AuthenticationClientFactory::getInstance(); + Ptr::Ref + authentication = acf->getAuthenticationClient(); + + try { + authentication->logout(sessionId); + } catch (XmlRpcException &e) { + std::string eMsg = "authentication logout() returned error:\n"; + eMsg += e.what(); + XmlRpcTools::markError(errorId+4, eMsg, returnValue); + return; + } +} + diff --git a/livesupport/products/scheduler/src/LogoutMethod.h b/livesupport/products/scheduler/src/LogoutMethod.h new file mode 100644 index 000000000..a0e95da39 --- /dev/null +++ b/livesupport/products/scheduler/src/LogoutMethod.h @@ -0,0 +1,142 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/LogoutMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef LogoutMethod_h +#define LogoutMethod_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include +#include +#include + +#include "LiveSupport/Core/Ptr.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to log out from the authentication server. + * + * The name of the method when called through XML-RPC is "logout". + * + * The expected parameter is an XML-RPC structure, with the following + * members: + *
    + *
  • sessionId - string - the session ID returned by login.
  • + *
+ * + * In case of an error, a standard XML-RPC fault response is generated, + * and a { faultCode, faultString } structure is returned. The + * possible errors are: + *
    + *
  • 2101 - invalid argument format
  • + *
  • 2120 - missing session ID argument
  • + *
  • 2104 - the authentication server reported an error
  • + *
+ * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class LogoutMethod : public XmlRpc::XmlRpcServerMethod +{ + private: + /** + * The name of this method, as it will be registered into the + * XML-RPC server. + */ + static const std::string methodName; + + /** + * The ID of this method for error reporting purposes. + */ + static const int errorId; + + + public: + /** + * A default constructor, for testing purposes. + */ + LogoutMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + LogoutMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the logout command on the Scheduler daemon. + * + * @param parameters XML-RPC function call parameters + * @param returnValue the return value of the call (out parameter) + */ + void + execute( XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // LogoutMethod_h + diff --git a/livesupport/products/scheduler/src/ResetStorageMethod.cxx b/livesupport/products/scheduler/src/ResetStorageMethod.cxx new file mode 100644 index 000000000..2ec4e8d93 --- /dev/null +++ b/livesupport/products/scheduler/src/ResetStorageMethod.cxx @@ -0,0 +1,100 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ResetStorageMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include "LiveSupport/Storage/StorageClientInterface.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "LiveSupport/Core/XmlRpcTools.h" + +#include "ResetStorageMethod.h" + + +using namespace LiveSupport::Storage; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string ResetStorageMethod::methodName = "resetStorage"; + +/*------------------------------------------------------------------------------ + * The ID of this method for error reporting purposes. + *----------------------------------------------------------------------------*/ +const int ResetStorageMethod::errorId = 3000; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +ResetStorageMethod :: ResetStorageMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Execute the XML-RPC function call. + * (Overrides 'execute' in XmlRpcServerMethod.) + *----------------------------------------------------------------------------*/ +void +ResetStorageMethod :: execute(XmlRpc::XmlRpcValue & rootParameter, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException) +{ + Ptr::Ref scf + = StorageClientFactory::getInstance(); + Ptr::Ref storage + = scf->getStorageClient(); + + try { + storage->reset(); + } catch (XmlRpcException &e) { + std::string eMsg = "storage reset() returned error:\n"; + eMsg += e.what(); + XmlRpcTools::markError(errorId+1, eMsg, returnValue); + return; + } +} + diff --git a/livesupport/products/scheduler/src/ResetStorageMethod.h b/livesupport/products/scheduler/src/ResetStorageMethod.h new file mode 100644 index 000000000..9db540fe1 --- /dev/null +++ b/livesupport/products/scheduler/src/ResetStorageMethod.h @@ -0,0 +1,136 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ResetStorageMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef ResetStorageMethod_h +#define ResetStorageMethod_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include +#include +#include + +#include "LiveSupport/Core/Ptr.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to reset the storage to its initial value. + * + * The name of the method when called through XML-RPC is "resetStorage". + * + * No parameters are required, and normally nothing is returned. + * + * In case of an error, a standard XML-RPC fault response is generated, + * and a { faultCode, faultString } structure is returned. The + * possible errors are: + *
    + *
  • 3001 - storage client reported an error
  • + *
+ * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class ResetStorageMethod : public XmlRpc::XmlRpcServerMethod +{ + private: + /** + * The name of this method, as it will be registered into the + * XML-RPC server. + */ + static const std::string methodName; + + /** + * The ID of this method for error reporting purposes. + */ + static const int errorId; + + + public: + /** + * A default constructor, for testing purposes. + */ + ResetStorageMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + ResetStorageMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the reset storage command on the Scheduler daemon. + * + * @param parameters XML-RPC function call parameters + * @param returnValue the return value of the call (out parameter) + */ + void + execute( XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw (XmlRpc::XmlRpcException); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // ResetStorageMethod_h + diff --git a/livesupport/products/scheduler/src/ResetStorageMethodTest.cxx b/livesupport/products/scheduler/src/ResetStorageMethodTest.cxx new file mode 100644 index 000000000..470f1a3a7 --- /dev/null +++ b/livesupport/products/scheduler/src/ResetStorageMethodTest.cxx @@ -0,0 +1,148 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ResetStorageMethodTest.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#include +#include + +#include "ResetStorageMethodTest.h" + + +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +CPPUNIT_TEST_SUITE_REGISTRATION(ResetStorageMethodTest); + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Set up the test environment + *----------------------------------------------------------------------------*/ +void +ResetStorageMethodTest :: setUp(void) throw () +{ +} + + +/*------------------------------------------------------------------------------ + * Clean up the test environment + *----------------------------------------------------------------------------*/ +void +ResetStorageMethodTest :: tearDown(void) throw () +{ +} + +#include +/*------------------------------------------------------------------------------ + * Just a very simple smoke test + *----------------------------------------------------------------------------*/ +void +ResetStorageMethodTest :: firstTest(void) + throw (CPPUNIT_NS::Exception) +{ + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters.clear(); + parameters["login"] = "root"; + parameters["password"] = "q"; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + std::string sessionId = std::string(result["sessionId"]); + + parameters.clear(); + parameters["sessionId"] = sessionId; + parameters["playlistId"] = "0000000000000001"; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("displayPlaylist", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("id")); + + parameters.clear(); + parameters["sessionId"] = sessionId; + parameters["playlistId"] = "0000000000000001"; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("deletePlaylist", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters.clear(); + parameters["sessionId"] = sessionId; + parameters["playlistId"] = "0000000000000001"; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("displayPlaylist", parameters, result)); + CPPUNIT_ASSERT(xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("faultCode")); + CPPUNIT_ASSERT(int(result["faultCode"]) == 1003); + + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + sessionId = std::string(result["sessionId"]); + + parameters.clear(); + parameters["sessionId"] = sessionId; + parameters["playlistId"] = "0000000000000001"; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("displayPlaylist", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("id")); + + parameters.clear(); + parameters["sessionId"] = sessionId; + result.clear(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); +} + diff --git a/livesupport/products/scheduler/src/ResetStorageMethodTest.h b/livesupport/products/scheduler/src/ResetStorageMethodTest.h new file mode 100644 index 000000000..469d378a5 --- /dev/null +++ b/livesupport/products/scheduler/src/ResetStorageMethodTest.h @@ -0,0 +1,108 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/ResetStorageMethodTest.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef ResetStorageMethodTest_h +#define ResetStorageMethodTest_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include + + +namespace LiveSupport { +namespace Scheduler { + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * Unit test for the ResetStorageMethod class. + * + * @author $Author: maroy, fgerlits + $ + * @version $Revision: 1.1 $ + * @see ResetStorageMethod + */ +class ResetStorageMethodTest : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE(ResetStorageMethodTest); + CPPUNIT_TEST(firstTest); + CPPUNIT_TEST_SUITE_END(); + + protected: + + /** + * A simple test. + * + * @exception CPPUNIT_NS::Exception on test failures. + */ + void + firstTest(void) throw (CPPUNIT_NS::Exception); + + + public: + + /** + * Set up the environment for the test case. + */ + void + setUp(void) throw (); + + /** + * Clean up the environment after the test case. + */ + void + tearDown(void) throw (); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // ResetStorageMethodTest_h + diff --git a/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.cxx b/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.cxx index 160f78cc7..f4b04ac65 100644 --- a/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.cxx +++ b/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.cxx @@ -22,41 +22,23 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.10 $ + Version : $Revision: 1.11 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include #include #include #include "SchedulerDaemon.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" -#include "LiveSupport/Core/XmlRpcTools.h" -#include "OpenPlaylistForEditingMethod.h" -#include "AddAudioClipToPlaylistMethod.h" #include "RpcAddAudioClipToPlaylistTest.h" -using namespace std; -using namespace LiveSupport::Storage; -using namespace LiveSupport::Authentication; + +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; /* =================================================== local data structures */ @@ -66,103 +48,35 @@ using namespace LiveSupport::Scheduler; CPPUNIT_TEST_SUITE_REGISTRATION(RpcAddAudioClipToPlaylistTest); -/** - * The name of the configuration file for the scheduler daemon. - */ -static const std::string schedulerDaemonConfig = - "etc/scheduler.xml"; - -/** - * The name of the configuration file for the storage client factory. - */ -static const std::string storageClientConfig = - "etc/storageClient.xml"; -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfig = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcAddAudioClipToPlaylistTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ void RpcAddAudioClipToPlaylistTest :: setUp(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); - if (!daemon->isConfigured()) { - try { - configure(daemon, schedulerDaemonConfig); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in scheduler configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing scheduler configuration file"); - } - } - daemon->install(); -// daemon->start(); -// sleep(2); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in storage configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing storage configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - Ptr::Ref acf; - try { - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing authentication configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -172,14 +86,16 @@ RpcAddAudioClipToPlaylistTest :: setUp(void) throw () void RpcAddAudioClipToPlaylistTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref daemon = SchedulerDaemon::getInstance(); -// daemon->stop(); -// sleep(2); - daemon->uninstall(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } diff --git a/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.h b/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.h index a58ee38e8..a04e2ef75 100644 --- a/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.h +++ b/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcAddAudioClipToPlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test for the AddAudioClipToPlaylistMethod class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see AddAudioClipToPlaylistMethod */ class RpcAddAudioClipToPlaylistTest : public CPPUNIT_NS::TestFixture @@ -75,30 +74,11 @@ class RpcAddAudioClipToPlaylistTest : public CPPUNIT_NS::TestFixture private: - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** @@ -109,7 +89,6 @@ class RpcAddAudioClipToPlaylistTest : public CPPUNIT_NS::TestFixture void firstTest(void) throw (CPPUNIT_NS::Exception); - public: /** diff --git a/livesupport/products/scheduler/src/RpcCreatePlaylistTest.cxx b/livesupport/products/scheduler/src/RpcCreatePlaylistTest.cxx index a20704b07..ddb357fae 100644 --- a/livesupport/products/scheduler/src/RpcCreatePlaylistTest.cxx +++ b/livesupport/products/scheduler/src/RpcCreatePlaylistTest.cxx @@ -22,45 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcCreatePlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include -#include #include +#include #include "SchedulerDaemon.h" -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" -#include "CreatePlaylistMethod.h" -#include "OpenPlaylistForEditingMethod.h" #include "RpcCreatePlaylistTest.h" -using namespace XmlRpc; -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ @@ -69,53 +48,11 @@ using namespace LiveSupport::Authentication; CPPUNIT_TEST_SUITE_REGISTRATION(RpcCreatePlaylistTest); -/** - * The name of the configuration file for the scheduler daemon. - */ -static const std::string schedulerDaemonConfig = - "etc/scheduler.xml"; - -/** - * The name of the configuration file for the storage client factory. - */ -static const std::string storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -static const std::string connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfig = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcCreatePlaylistTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - /*------------------------------------------------------------------------------ * Set up the test environment @@ -123,47 +60,23 @@ RpcCreatePlaylistTest :: configure( void RpcCreatePlaylistTest :: setUp(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); - if (!daemon->isConfigured()) { - try { - configure(daemon, schedulerDaemonConfig); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in scheduler configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing scheduler configuration file"); - } - } - daemon->install(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - if (!(sessionId = authentication->login("root", "q"))) { - CPPUNIT_FAIL("could not log in to authentication server"); - } + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -173,12 +86,16 @@ RpcCreatePlaylistTest :: setUp(void) throw () void RpcCreatePlaylistTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); - - Ptr::Ref daemon = SchedulerDaemon::getInstance(); - daemon->uninstall(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } @@ -189,18 +106,20 @@ void RpcCreatePlaylistTest :: firstTest(void) throw (CPPUNIT_NS::Exception) { - XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); XmlRpc::XmlRpcValue parameters; XmlRpc::XmlRpcValue result; + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + parameters["sessionId"] = sessionId->getId(); result.clear(); xmlRpcClient.execute("createPlaylist", parameters, result); CPPUNIT_ASSERT(!xmlRpcClient.isFault()); CPPUNIT_ASSERT(result.hasMember("id")); - CPPUNIT_ASSERT(result["id"].getType == XmlRpcValue::TypeString); + CPPUNIT_ASSERT(result["id"].getType() == XmlRpc::XmlRpcValue::TypeString); CPPUNIT_ASSERT(result.hasMember("playlength")); - CPPUNIT_ASSERT(result["playlength"].getType == XmlRpcValue::TypeInt); + CPPUNIT_ASSERT(result["playlength"].getType() + == XmlRpc::XmlRpcValue::TypeInt); CPPUNIT_ASSERT(int(result["playlength"]) == 0); parameters.clear(); @@ -211,7 +130,7 @@ RpcCreatePlaylistTest :: firstTest(void) xmlRpcClient.execute("openPlaylistForEditing", parameters, result); CPPUNIT_ASSERT(xmlRpcClient.isFault()); CPPUNIT_ASSERT(result.hasMember("faultCode")); - CPPUNIT_ASSERT(int(result["faultCode"]) == 105); + CPPUNIT_ASSERT(int(result["faultCode"]) == 104); xmlRpcClient.close(); } diff --git a/livesupport/products/scheduler/src/RpcCreatePlaylistTest.h b/livesupport/products/scheduler/src/RpcCreatePlaylistTest.h index d08babb7c..084158123 100644 --- a/livesupport/products/scheduler/src/RpcCreatePlaylistTest.h +++ b/livesupport/products/scheduler/src/RpcCreatePlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcCreatePlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test for the CreatePlaylistMethod class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see CreatePlaylistMethod */ class RpcCreatePlaylistTest : public CPPUNIT_NS::TestFixture @@ -75,30 +74,11 @@ class RpcCreatePlaylistTest : public CPPUNIT_NS::TestFixture private: - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcDeletePlaylistTest.cxx b/livesupport/products/scheduler/src/RpcDeletePlaylistTest.cxx index 9adb77734..abd6b4cd5 100644 --- a/livesupport/products/scheduler/src/RpcDeletePlaylistTest.cxx +++ b/livesupport/products/scheduler/src/RpcDeletePlaylistTest.cxx @@ -22,46 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/RpcDeletePlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include -#include #include +#include #include "SchedulerDaemon.h" -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" -#include "OpenPlaylistForEditingMethod.h" -#include "SavePlaylistMethod.h" - -#include "DeletePlaylistMethod.h" #include "RpcDeletePlaylistTest.h" -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ @@ -70,53 +48,11 @@ using namespace LiveSupport::Authentication; CPPUNIT_TEST_SUITE_REGISTRATION(RpcDeletePlaylistTest); -/** - * The name of the configuration file for the scheduler daemon. - */ -static const std::string schedulerDaemonConfig = - "etc/scheduler.xml"; - -/** - * The name of the configuration file for the storage client factory. - */ -static const std::string storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -static const std::string connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfig = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcDeletePlaylistTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - /*------------------------------------------------------------------------------ * Set up the test environment @@ -124,47 +60,23 @@ RpcDeletePlaylistTest :: configure( void RpcDeletePlaylistTest :: setUp(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); - if (!daemon->isConfigured()) { - try { - configure(daemon, schedulerDaemonConfig); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in scheduler configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing scheduler configuration file"); - } - } - daemon->install(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - if (!(sessionId = authentication->login("root", "q"))) { - CPPUNIT_FAIL("could not log in to authentication server"); - } + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -174,12 +86,16 @@ RpcDeletePlaylistTest :: setUp(void) throw () void RpcDeletePlaylistTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); - - Ptr::Ref daemon = SchedulerDaemon::getInstance(); - daemon->uninstall(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } diff --git a/livesupport/products/scheduler/src/RpcDeletePlaylistTest.h b/livesupport/products/scheduler/src/RpcDeletePlaylistTest.h index 7aaf99003..5b574deda 100644 --- a/livesupport/products/scheduler/src/RpcDeletePlaylistTest.h +++ b/livesupport/products/scheduler/src/RpcDeletePlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/Attic/RpcDeletePlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -65,7 +64,7 @@ using namespace LiveSupport::Authentication; * * @author $Author: maroy, fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see DeletePlaylistMethod */ class RpcDeletePlaylistTest : public CPPUNIT_NS::TestFixture @@ -77,31 +76,11 @@ class RpcDeletePlaylistTest : public CPPUNIT_NS::TestFixture private: - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - protected: /** diff --git a/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.cxx b/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.cxx index ff90344e9..bd7081770 100644 --- a/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.cxx +++ b/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.cxx @@ -22,66 +22,31 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.7 $ + Version : $Revision: 1.8 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include +#include #include -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" +#include "SchedulerDaemon.h" -#include "DisplayAudioClipMethod.h" -#include "DisplayAudioClipMethodTest.h" +#include "RpcDisplayAudioClipTest.h" -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ /* ================================================ local constants & macros */ -CPPUNIT_TEST_SUITE_REGISTRATION(DisplayAudioClipMethodTest); - -/** - * The name of the configuration file for the storage client factory. - */ -const std::string DisplayAudioClipMethodTest::storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -const std::string DisplayAudioClipMethodTest::connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -const std::string DisplayAudioClipMethodTest::authenticationClientConfig = - "etc/authenticationClient.xml"; +CPPUNIT_TEST_SUITE_REGISTRATION(RpcDisplayAudioClipTest); /* =============================================== local function prototypes */ @@ -89,61 +54,29 @@ const std::string DisplayAudioClipMethodTest::authenticationClientConfig = /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -DisplayAudioClipMethodTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ void -DisplayAudioClipMethodTest :: setUp(void) throw () +RpcDisplayAudioClipTest :: setUp(void) throw () { - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -151,11 +84,18 @@ DisplayAudioClipMethodTest :: setUp(void) throw () * Clean up the test environment *----------------------------------------------------------------------------*/ void -DisplayAudioClipMethodTest :: tearDown(void) throw () +RpcDisplayAudioClipTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } @@ -163,7 +103,7 @@ DisplayAudioClipMethodTest :: tearDown(void) throw () * Just a very simple smoke test *----------------------------------------------------------------------------*/ void -DisplayAudioClipMethodTest :: firstTest(void) +RpcDisplayAudioClipTest :: firstTest(void) throw (CPPUNIT_NS::Exception) { XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); @@ -193,7 +133,7 @@ DisplayAudioClipMethodTest :: firstTest(void) * A very simple negative test *----------------------------------------------------------------------------*/ void -DisplayAudioClipMethodTest :: negativeTest(void) +RpcDisplayAudioClipTest :: negativeTest(void) throw (CPPUNIT_NS::Exception) { XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); diff --git a/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.h b/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.h index adae13324..69868c1fc 100644 --- a/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.h +++ b/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.h @@ -22,12 +22,12 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayAudioClipTest.h,v $ ------------------------------------------------------------------------------*/ -#ifndef DisplayAudioClipMethodTest_h -#define DisplayAudioClipMethodTest_h +#ifndef RpcDisplayAudioClipTest_h +#define RpcDisplayAudioClipTest_h #ifndef __cplusplus #error This is a C++ include file @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,60 +63,23 @@ using namespace LiveSupport::Authentication; * Unit test for the DisplayAudioClipMethod class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see DisplayAudioClipMethod */ -class DisplayAudioClipMethodTest : public CPPUNIT_NS::TestFixture +class RpcDisplayAudioClipTest : public CPPUNIT_NS::TestFixture { - CPPUNIT_TEST_SUITE(DisplayAudioClipMethodTest); + CPPUNIT_TEST_SUITE(RpcDisplayAudioClipTest); CPPUNIT_TEST(firstTest); CPPUNIT_TEST(negativeTest); CPPUNIT_TEST_SUITE_END(); private: - /** - * The name of the configuration file for the storage client factory. - */ - static const std::string storageClientConfig; - - /** - * The name of the configuration file for the connection manager - * factory. - */ - static const std::string connectionManagerConfig; - - /** - * The name of the configuration file for the authentication client - * factory. - */ - static const std::string authenticationClientConfig; - - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - protected: /** @@ -161,5 +123,5 @@ class DisplayAudioClipMethodTest : public CPPUNIT_NS::TestFixture } // namespace Scheduler } // namespace LiveSupport -#endif // DisplayAudioClipMethodTest_h +#endif // RpcDisplayAudioClipTest_h diff --git a/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.cxx b/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.cxx index 407ed858f..1cb1df0d6 100644 --- a/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.cxx +++ b/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.cxx @@ -22,125 +22,61 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include -#include +#include #include -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" +#include "SchedulerDaemon.h" -#include "DisplayAudioClipsMethod.h" -#include "DisplayAudioClipsMethodTest.h" +#include "RpcDisplayAudioClipsTest.h" -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ /* ================================================ local constants & macros */ -CPPUNIT_TEST_SUITE_REGISTRATION(DisplayAudioClipsMethodTest); - -/** - * The name of the configuration file for the storage client factory. - */ -const std::string DisplayAudioClipsMethodTest::storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -const std::string DisplayAudioClipsMethodTest::connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -const std::string DisplayAudioClipsMethodTest::authenticationClientConfig = - "etc/authenticationClient.xml"; +CPPUNIT_TEST_SUITE_REGISTRATION(RpcDisplayAudioClipsTest); /* =============================================== local function prototypes */ /* ============================================================= module code */ - -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -DisplayAudioClipsMethodTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ void -DisplayAudioClipsMethodTest :: setUp(void) throw () +RpcDisplayAudioClipsTest :: setUp(void) throw () { - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - if (!(sessionId = authentication->login("root", "q"))) { - CPPUNIT_FAIL("could not log in to authentication server"); - } + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -148,11 +84,18 @@ DisplayAudioClipsMethodTest :: setUp(void) throw () * Clean up the test environment *----------------------------------------------------------------------------*/ void -DisplayAudioClipsMethodTest :: tearDown(void) throw () +RpcDisplayAudioClipsTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } @@ -160,7 +103,7 @@ DisplayAudioClipsMethodTest :: tearDown(void) throw () * Just a very simple smoke test *----------------------------------------------------------------------------*/ void -DisplayAudioClipsMethodTest :: firstTest(void) +RpcDisplayAudioClipsTest :: firstTest(void) throw (CPPUNIT_NS::Exception) { XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); @@ -171,7 +114,7 @@ DisplayAudioClipsMethodTest :: firstTest(void) parameters["sessionId"] = sessionId->getId(); xmlRpcClient.execute("displayAudioClips", parameters, result); CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - CPPUNIT_ASSERT(result.size() == 2); + CPPUNIT_ASSERT(result.size() >= 2); XmlRpc::XmlRpcValue audioClip = result[0]; CPPUNIT_ASSERT(audioClip.hasMember("id")); diff --git a/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.h b/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.h index f00fb8afb..f950cc7cd 100644 --- a/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.h +++ b/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.h @@ -22,12 +22,12 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayAudioClipsTest.h,v $ ------------------------------------------------------------------------------*/ -#ifndef DisplayAudioClipsMethodTest_h -#define DisplayAudioClipsMethodTest_h +#ifndef RpcDisplayAudioClipsTest_h +#define RpcDisplayAudioClipsTest_h #ifndef __cplusplus #error This is a C++ include file @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,59 +63,22 @@ using namespace LiveSupport::Authentication; * Unit test for the DisplayAudioClipsMethod class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ - * @see DisplayAudioClipsMethod + * @version $Revision: 1.3 $ + * @see RpcDisplayAudioClips */ -class DisplayAudioClipsMethodTest : public CPPUNIT_NS::TestFixture +class RpcDisplayAudioClipsTest : public CPPUNIT_NS::TestFixture { - CPPUNIT_TEST_SUITE(DisplayAudioClipsMethodTest); + CPPUNIT_TEST_SUITE(RpcDisplayAudioClipsTest); CPPUNIT_TEST(firstTest); CPPUNIT_TEST_SUITE_END(); private: - /** - * The name of the configuration file for the storage client factory. - */ - static const std::string storageClientConfig; - - /** - * The name of the configuration file for the connection manager - * factory. - */ - static const std::string connectionManagerConfig; - - /** - * The name of the configuration file for the authentication client - * factory. - */ - static const std::string authenticationClientConfig; - - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - protected: /** @@ -153,5 +115,5 @@ class DisplayAudioClipsMethodTest : public CPPUNIT_NS::TestFixture } // namespace Scheduler } // namespace LiveSupport -#endif // DisplayAudioClipsMethodTest_h +#endif // RpcDisplayAudioClipsTest_h diff --git a/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.cxx b/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.cxx index 9b5aae5ac..df9119b7b 100644 --- a/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.cxx +++ b/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.cxx @@ -22,39 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.9 $ + Version : $Revision: 1.10 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - #include #include #include #include "SchedulerDaemon.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" + #include "RpcDisplayPlaylistTest.h" -using namespace std; -using namespace XmlRpc; -using namespace LiveSupport::Core; -using namespace LiveSupport::Storage; -using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; +using namespace LiveSupport::Core; +using namespace LiveSupport::Scheduler; /* =================================================== local data structures */ @@ -68,93 +53,35 @@ CPPUNIT_TEST_SUITE_REGISTRATION(RpcDisplayPlaylistTest); */ static const std::string configFileName = "etc/scheduler.xml"; -/** - * The name of the configuration file for the storage client factory. - */ -static const std::string storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfigFileName = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcDisplayPlaylistTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ void RpcDisplayPlaylistTest :: setUp(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - if (!daemon->isConfigured()) { - try { - configure(daemon, configFileName); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in scheduler configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing scheduler configuration file"); - } - } + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - daemon->install(); -// daemon->start(); -// sleep(5); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfigFileName); + xmlRpcClient.close(); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing authentication configuration file"); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -164,14 +91,16 @@ RpcDisplayPlaylistTest :: setUp(void) throw () void RpcDisplayPlaylistTest :: tearDown(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; -// daemon->stop(); - daemon->uninstall(); - - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } diff --git a/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.h b/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.h index 9c46495e7..bcb9257a2 100644 --- a/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.h +++ b/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayPlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test to test the displayPlaylist XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see SchedulerDaemon */ class RpcDisplayPlaylistTest : public CPPUNIT_NS::TestFixture @@ -75,30 +74,12 @@ class RpcDisplayPlaylistTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE_END(); private: - /** - * An authentication client. - */ - Ptr::Ref authentication; /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.cxx b/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.cxx index 2f179c129..3d366c17e 100644 --- a/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.cxx +++ b/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.cxx @@ -22,67 +22,31 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.7 $ + Version : $Revision: 1.8 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include -#include -#include +#include #include -#include "LiveSupport/Db/ConnectionManagerFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" +#include "SchedulerDaemon.h" -#include "DisplayPlaylistsMethod.h" -#include "DisplayPlaylistsMethodTest.h" +#include "RpcDisplayPlaylistsTest.h" -using namespace LiveSupport::Db; -using namespace LiveSupport::Storage; +using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ /* ================================================ local constants & macros */ -CPPUNIT_TEST_SUITE_REGISTRATION(DisplayPlaylistsMethodTest); - -/** - * The name of the configuration file for the storage client factory. - */ -const std::string DisplayPlaylistsMethodTest::storageClientConfig = - "etc/storageClient.xml"; - -/** - * The name of the configuration file for the connection manager factory. - */ -const std::string DisplayPlaylistsMethodTest::connectionManagerConfig = - "etc/connectionManagerFactory.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -const std::string DisplayPlaylistsMethodTest::authenticationClientConfig = - "etc/authenticationClient.xml"; +CPPUNIT_TEST_SUITE_REGISTRATION(RpcDisplayPlaylistsTest); /* =============================================== local function prototypes */ @@ -90,61 +54,29 @@ const std::string DisplayPlaylistsMethodTest::authenticationClientConfig = /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -DisplayPlaylistsMethodTest :: configure( - Ptr::Ref configurable, - const std::string fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ void -DisplayPlaylistsMethodTest :: setUp(void) throw () +RpcDisplayPlaylistsTest :: setUp(void) throw () { - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - Ptr::Ref cmf - = ConnectionManagerFactory::getInstance(); - configure(cmf, connectionManagerConfig); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfig); + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); - } catch (std::invalid_argument &e) { - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - CPPUNIT_FAIL("error parsing configuration file"); - } catch (std::exception &e) { - CPPUNIT_FAIL(e.what()); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -152,11 +84,18 @@ DisplayPlaylistsMethodTest :: setUp(void) throw () * Clean up the test environment *----------------------------------------------------------------------------*/ void -DisplayPlaylistsMethodTest :: tearDown(void) throw () +RpcDisplayPlaylistsTest :: tearDown(void) throw () { - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); } @@ -164,7 +103,7 @@ DisplayPlaylistsMethodTest :: tearDown(void) throw () * Just a very simple smoke test *----------------------------------------------------------------------------*/ void -DisplayPlaylistsMethodTest :: firstTest(void) +RpcDisplayPlaylistsTest :: firstTest(void) throw (CPPUNIT_NS::Exception) { XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); diff --git a/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.h b/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.h index 961f7751d..b6faf6f34 100644 --- a/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.h +++ b/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.h @@ -22,12 +22,12 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayPlaylistsTest.h,v $ ------------------------------------------------------------------------------*/ -#ifndef DisplayPlaylistsMethodTest_h -#define DisplayPlaylistsMethodTest_h +#ifndef RpcDisplayPlaylistsTest_h +#define RpcDisplayPlaylistsTest_h #ifndef __cplusplus #error This is a C++ include file @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,59 +63,22 @@ using namespace LiveSupport::Authentication; * Unit test for the DisplayPlaylistsMethod class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see DisplayPlaylistsMethod */ -class DisplayPlaylistsMethodTest : public CPPUNIT_NS::TestFixture +class RpcDisplayPlaylistsTest : public CPPUNIT_NS::TestFixture { - CPPUNIT_TEST_SUITE(DisplayPlaylistsMethodTest); + CPPUNIT_TEST_SUITE(RpcDisplayPlaylistsTest); CPPUNIT_TEST(firstTest); CPPUNIT_TEST_SUITE_END(); private: - /** - * The name of the configuration file for the storage client factory. - */ - static const std::string storageClientConfig; - - /** - * The name of the configuration file for the connection manager - * factory. - */ - static const std::string connectionManagerConfig; - - /** - * The name of the configuration file for the authentication client - * factory. - */ - static const std::string authenticationClientConfig; - - /** - * The authentication client produced by the factory. - */ - Ptr::Ref authentication; - /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - std::string fileName) - throw (std::invalid_argument, - xmlpp::exception); - - protected: /** @@ -127,7 +89,6 @@ class DisplayPlaylistsMethodTest : public CPPUNIT_NS::TestFixture void firstTest(void) throw (CPPUNIT_NS::Exception); - public: /** @@ -153,5 +114,5 @@ class DisplayPlaylistsMethodTest : public CPPUNIT_NS::TestFixture } // namespace Scheduler } // namespace LiveSupport -#endif // DisplayPlaylistsMethodTest_h +#endif // RpcDisplayPlaylistsTest_h diff --git a/livesupport/products/scheduler/src/RpcDisplayScheduleTest.cxx b/livesupport/products/scheduler/src/RpcDisplayScheduleTest.cxx index 161cfb1ed..1ee4205a0 100644 --- a/livesupport/products/scheduler/src/RpcDisplayScheduleTest.cxx +++ b/livesupport/products/scheduler/src/RpcDisplayScheduleTest.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.5 $ + Version : $Revision: 1.6 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayScheduleTest.cxx,v $ ------------------------------------------------------------------------------*/ @@ -33,27 +33,17 @@ #include "configure.h" #endif -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include #include "SchedulerDaemon.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" + #include "RpcDisplayScheduleTest.h" -using namespace std; -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ @@ -67,36 +57,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION(RpcDisplayScheduleTest); */ static const std::string configFileName = "etc/scheduler.xml"; -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfigFileName = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcDisplayScheduleTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -107,7 +73,11 @@ RpcDisplayScheduleTest :: setUp(void) throw () if (!daemon->isConfigured()) { try { - configure(daemon, configFileName); + Ptr::Ref parser(new xmlpp::DomParser( + configFileName, true)); + const xmlpp::Document * document = parser->get_document(); + const xmlpp::Element * root = document->get_root_node(); + daemon->configure(*root); } catch (std::invalid_argument &e) { std::cerr << e.what() << std::endl; CPPUNIT_FAIL("semantic error in configuration file"); @@ -118,30 +88,24 @@ RpcDisplayScheduleTest :: setUp(void) throw () } daemon->install(); -// daemon->start(); -// sleep(5); - Ptr::Ref acf; - try { - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfigFileName); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing authentication configuration file"); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -151,14 +115,19 @@ RpcDisplayScheduleTest :: setUp(void) throw () void RpcDisplayScheduleTest :: tearDown(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; -// daemon->stop(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); + + Ptr::Ref daemon = SchedulerDaemon::getInstance(); daemon->uninstall(); - - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); } diff --git a/livesupport/products/scheduler/src/RpcDisplayScheduleTest.h b/livesupport/products/scheduler/src/RpcDisplayScheduleTest.h index 9ddee3275..f2ba35f1c 100644 --- a/livesupport/products/scheduler/src/RpcDisplayScheduleTest.h +++ b/livesupport/products/scheduler/src/RpcDisplayScheduleTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcDisplayScheduleTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test to test the displaySchedule XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see SchedulerDaemon */ class RpcDisplayScheduleTest : public CPPUNIT_NS::TestFixture @@ -74,30 +73,12 @@ class RpcDisplayScheduleTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE_END(); private: - /** - * An authentication client. - */ - Ptr::Ref authentication; /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.cxx b/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.cxx index f0aa7d4ae..48b825ff8 100644 --- a/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.cxx +++ b/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.cxx @@ -22,37 +22,25 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include #include "SchedulerDaemon.h" + #include "RpcGetSchedulerTimeTest.h" -using namespace std; -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; - /* =================================================== local data structures */ @@ -71,24 +59,6 @@ static const std::string configFileName = "etc/scheduler.xml"; /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcGetSchedulerTimeTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -99,7 +69,11 @@ RpcGetSchedulerTimeTest :: setUp(void) throw () if (!daemon->isConfigured()) { try { - configure(daemon, configFileName); + Ptr::Ref parser(new xmlpp::DomParser( + configFileName, true)); + const xmlpp::Document * document = parser->get_document(); + const xmlpp::Element * root = document->get_root_node(); + daemon->configure(*root); } catch (std::invalid_argument &e) { std::cerr << e.what() << std::endl; CPPUNIT_FAIL("semantic error in configuration file"); @@ -110,8 +84,6 @@ RpcGetSchedulerTimeTest :: setUp(void) throw () } daemon->install(); -// daemon->start(); -// sleep(5); } @@ -122,8 +94,6 @@ void RpcGetSchedulerTimeTest :: tearDown(void) throw () { Ptr::Ref daemon = SchedulerDaemon::getInstance(); - -// daemon->stop(); daemon->uninstall(); } diff --git a/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.h b/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.h index 5e2c4ab7e..f570b7109 100644 --- a/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.h +++ b/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcGetSchedulerTimeTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,10 +42,10 @@ #include + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; /* ================================================================ constants */ @@ -60,7 +60,7 @@ using namespace LiveSupport::Core; * Unit test to test the getSchedulerTime XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ * @see SchedulerDaemon */ class RpcGetSchedulerTimeTest : public CPPUNIT_NS::TestFixture @@ -69,22 +69,6 @@ class RpcGetSchedulerTimeTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(simpleTest); CPPUNIT_TEST_SUITE_END(); - private: - - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcGetVersionTest.cxx b/livesupport/products/scheduler/src/RpcGetVersionTest.cxx index ab8dcd24f..951cc1a15 100644 --- a/livesupport/products/scheduler/src/RpcGetVersionTest.cxx +++ b/livesupport/products/scheduler/src/RpcGetVersionTest.cxx @@ -22,37 +22,25 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.3 $ + Version : $Revision: 1.4 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcGetVersionTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include #include "SchedulerDaemon.h" + #include "RpcGetVersionTest.h" -using namespace std; -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; - /* =================================================== local data structures */ @@ -60,11 +48,6 @@ using namespace LiveSupport::Scheduler; CPPUNIT_TEST_SUITE_REGISTRATION(RpcGetVersionTest); -/** - * The name of the configuration file for the scheduler daemon. - */ -static const std::string configFileName = "etc/scheduler.xml"; - /** * The prefix of the persumed version string. */ @@ -76,24 +59,6 @@ static const std::string versionPrefix = "LiveSupport Scheduler Daemon"; /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcGetVersionTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -101,22 +66,7 @@ void RpcGetVersionTest :: setUp(void) throw () { Ptr::Ref daemon = SchedulerDaemon::getInstance(); - - if (!daemon->isConfigured()) { - try { - configure(daemon, configFileName); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing configuration file"); - } - } - daemon->install(); -// daemon->start(); -// sleep(5); } @@ -127,8 +77,6 @@ void RpcGetVersionTest :: tearDown(void) throw () { Ptr::Ref daemon = SchedulerDaemon::getInstance(); - -// daemon->stop(); daemon->uninstall(); } diff --git a/livesupport/products/scheduler/src/RpcGetVersionTest.h b/livesupport/products/scheduler/src/RpcGetVersionTest.h index 673488356..2542699bf 100644 --- a/livesupport/products/scheduler/src/RpcGetVersionTest.h +++ b/livesupport/products/scheduler/src/RpcGetVersionTest.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.1 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.2 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcGetVersionTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,13 +42,10 @@ #include + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; -using namespace LiveSupport::Core; - - /* ================================================================ constants */ @@ -60,8 +57,8 @@ using namespace LiveSupport::Core; /** * Unit test to test the getVersion XML-RPC call. * - * @author $Author: maroy $ - * @version $Revision: 1.1 $ + * @author $Author: fgerlits $ + * @version $Revision: 1.2 $ * @see SchedulerDaemon */ class RpcGetVersionTest : public CPPUNIT_NS::TestFixture @@ -70,21 +67,6 @@ class RpcGetVersionTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(simpleTest); CPPUNIT_TEST_SUITE_END(); - private: - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.cxx b/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.cxx index 048acb3a3..fcc5607a8 100644 --- a/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.cxx +++ b/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.cxx @@ -22,37 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include #include "SchedulerDaemon.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" + #include "RpcRemoveFromScheduleTest.h" -using namespace std; -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; /* =================================================== local data structures */ @@ -62,41 +49,12 @@ using namespace LiveSupport::Authentication; CPPUNIT_TEST_SUITE_REGISTRATION(RpcRemoveFromScheduleTest); -/** - * The name of the configuration file for the scheduler daemon. - */ -static const std::string configFileName = "etc/scheduler.xml"; - -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfigFileName = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcRemoveFromScheduleTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -104,44 +62,25 @@ void RpcRemoveFromScheduleTest :: setUp(void) throw () { Ptr::Ref daemon = SchedulerDaemon::getInstance(); - - if (!daemon->isConfigured()) { - try { - configure(daemon, configFileName); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing configuration file"); - } - } - daemon->install(); -// daemon->start(); -// sleep(5); - Ptr::Ref acf; - try { - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfigFileName); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing authentication configuration file"); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -151,14 +90,20 @@ RpcRemoveFromScheduleTest :: setUp(void) throw () void RpcRemoveFromScheduleTest :: tearDown(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; -// daemon->stop(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); + + Ptr::Ref daemon = SchedulerDaemon::getInstance(); daemon->uninstall(); - - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); + } diff --git a/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.h b/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.h index b94ffdbcc..a8eea5de8 100644 --- a/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.h +++ b/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcRemoveFromScheduleTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test to test the removeFromSchedule XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see SchedulerDaemon */ class RpcRemoveFromScheduleTest : public CPPUNIT_NS::TestFixture @@ -75,30 +74,12 @@ class RpcRemoveFromScheduleTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE_END(); private: - /** - * An authentication client. - */ - Ptr::Ref authentication; /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcRescheduleTest.cxx b/livesupport/products/scheduler/src/RpcRescheduleTest.cxx index 49bb10560..ce3dc7e75 100644 --- a/livesupport/products/scheduler/src/RpcRescheduleTest.cxx +++ b/livesupport/products/scheduler/src/RpcRescheduleTest.cxx @@ -22,37 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcRescheduleTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include #include "SchedulerDaemon.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" + #include "RpcRescheduleTest.h" -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; - /* =================================================== local data structures */ @@ -66,36 +53,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION(RpcRescheduleTest); */ static const std::string configFileName = "etc/scheduler.xml"; -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfigFileName = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcRescheduleTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -106,7 +69,11 @@ RpcRescheduleTest :: setUp(void) throw () if (!daemon->isConfigured()) { try { - configure(daemon, configFileName); + Ptr::Ref parser(new xmlpp::DomParser( + configFileName, true)); + const xmlpp::Document * document = parser->get_document(); + const xmlpp::Element * root = document->get_root_node(); + daemon->configure(*root); } catch (std::invalid_argument &e) { std::cerr << e.what() << std::endl; CPPUNIT_FAIL("semantic error in configuration file"); @@ -117,30 +84,24 @@ RpcRescheduleTest :: setUp(void) throw () } daemon->install(); -// daemon->start(); -// sleep(5); - Ptr::Ref acf; - try { - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfigFileName); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing authentication configuration file"); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -150,14 +111,19 @@ RpcRescheduleTest :: setUp(void) throw () void RpcRescheduleTest :: tearDown(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; -// daemon->stop(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); + + Ptr::Ref daemon = SchedulerDaemon::getInstance(); daemon->uninstall(); - - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); } @@ -168,11 +134,11 @@ void RpcRescheduleTest :: simpleTest(void) throw (CPPUNIT_NS::Exception) { - XmlRpcValue parameters; - XmlRpcValue result; - struct tm time; + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + struct tm time; - XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); // first schedule a playlist, so that there is something to reschedule parameters["sessionId"] = sessionId->getId(); @@ -235,10 +201,10 @@ void RpcRescheduleTest :: negativeTest(void) throw (CPPUNIT_NS::Exception) { - XmlRpcValue parameters; - XmlRpcValue result; + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); parameters["sessionId"] = sessionId->getId(); parameters["scheduleEntryId"] = "0000000000009999"; diff --git a/livesupport/products/scheduler/src/RpcRescheduleTest.h b/livesupport/products/scheduler/src/RpcRescheduleTest.h index bfc9309f3..74b11e7b1 100644 --- a/livesupport/products/scheduler/src/RpcRescheduleTest.h +++ b/livesupport/products/scheduler/src/RpcRescheduleTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcRescheduleTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test to test the removeFromSchedule XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see SchedulerDaemon */ class RpcRescheduleTest : public CPPUNIT_NS::TestFixture @@ -75,30 +74,12 @@ class RpcRescheduleTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE_END(); private: - /** - * An authentication client. - */ - Ptr::Ref authentication; /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/RpcUploadPlaylistTest.cxx b/livesupport/products/scheduler/src/RpcUploadPlaylistTest.cxx index 423c35e0b..0ccc4e990 100644 --- a/livesupport/products/scheduler/src/RpcUploadPlaylistTest.cxx +++ b/livesupport/products/scheduler/src/RpcUploadPlaylistTest.cxx @@ -22,42 +22,24 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.8 $ + Version : $Revision: 1.9 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcUploadPlaylistTest.cxx,v $ ------------------------------------------------------------------------------*/ /* ============================================================ include files */ -#ifdef HAVE_CONFIG_H -#include "configure.h" -#endif - -#if HAVE_UNISTD_H -#include -#else -#error "Need unistd.h" -#endif - - #include #include #include -#include "LiveSupport/Core/XmlRpcTools.h" -#include "LiveSupport/Core/UniqueId.h" #include "SchedulerDaemon.h" -#include "LiveSupport/Authentication/AuthenticationClientFactory.h" -#include "LiveSupport/Storage/StorageClientFactory.h" + #include "RpcUploadPlaylistTest.h" -using namespace std; -using namespace XmlRpc; + using namespace LiveSupport::Core; using namespace LiveSupport::Scheduler; -using namespace LiveSupport::Authentication; -using namespace LiveSupport::Storage; - /* =================================================== local data structures */ @@ -71,41 +53,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION(RpcUploadPlaylistTest); */ static const std::string configFileName = "etc/scheduler.xml"; -/** - * The name of the configuration file for the storage client factory. - */ -static const std::string storageClientConfig = - "etc/storageClient.xml"; -/** - * The name of the configuration file for the authentication client factory. - */ -static const std::string authenticationClientConfigFileName = - "etc/authenticationClient.xml"; - /* =============================================== local function prototypes */ /* ============================================================= module code */ -/*------------------------------------------------------------------------------ - * Configure a Configurable with an XML file. - *----------------------------------------------------------------------------*/ -void -RpcUploadPlaylistTest :: configure( - Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception) -{ - Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); - const xmlpp::Document * document = parser->get_document(); - const xmlpp::Element * root = document->get_root_node(); - - configurable->configure(*root); -} - - /*------------------------------------------------------------------------------ * Set up the test environment *----------------------------------------------------------------------------*/ @@ -116,7 +69,11 @@ RpcUploadPlaylistTest :: setUp(void) throw () if (!daemon->isConfigured()) { try { - configure(daemon, configFileName); + Ptr::Ref parser(new xmlpp::DomParser( + configFileName, true)); + const xmlpp::Document * document = parser->get_document(); + const xmlpp::Element * root = document->get_root_node(); + daemon->configure(*root); } catch (std::invalid_argument &e) { std::cerr << e.what() << std::endl; CPPUNIT_FAIL("semantic error in configuration file"); @@ -127,36 +84,24 @@ RpcUploadPlaylistTest :: setUp(void) throw () } daemon->install(); -// daemon->start(); -// sleep(5); - Ptr::Ref acf; - try { - Ptr::Ref scf - = StorageClientFactory::getInstance(); - configure(scf, storageClientConfig); - Ptr::Ref storage = scf->getStorageClient(); - storage->reset(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; - acf = AuthenticationClientFactory::getInstance(); - configure(acf, authenticationClientConfigFileName); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); - } catch (std::invalid_argument &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("semantic error in authentication configuration file"); - } catch (xmlpp::exception &e) { - std::cerr << e.what() << std::endl; - CPPUNIT_FAIL("error parsing authentication configuration file"); - } - - authentication = acf->getAuthenticationClient(); - try { - sessionId = authentication->login("root", "q"); - } catch (XmlRpcException &e) { - std::string eMsg = "could not log in:\n"; - eMsg += e.what(); - CPPUNIT_FAIL(eMsg); - } + CPPUNIT_ASSERT(xmlRpcClient.execute("resetStorage", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + parameters["login"] = "root"; + parameters["password"] = "q"; + CPPUNIT_ASSERT(xmlRpcClient.execute("login", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + CPPUNIT_ASSERT(result.hasMember("sessionId")); + + xmlRpcClient.close(); + + sessionId.reset(new SessionId(std::string(result["sessionId"]))); } @@ -166,14 +111,19 @@ RpcUploadPlaylistTest :: setUp(void) throw () void RpcUploadPlaylistTest :: tearDown(void) throw () { - Ptr::Ref daemon = SchedulerDaemon::getInstance(); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; -// daemon->stop(); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + + parameters["sessionId"] = sessionId->getId(); + CPPUNIT_ASSERT(xmlRpcClient.execute("logout", parameters, result)); + CPPUNIT_ASSERT(!xmlRpcClient.isFault()); + + xmlRpcClient.close(); + + Ptr::Ref daemon = SchedulerDaemon::getInstance(); daemon->uninstall(); - - authentication->logout(sessionId); - sessionId.reset(); - authentication.reset(); } @@ -184,13 +134,14 @@ void RpcUploadPlaylistTest :: simpleTest(void) throw (CPPUNIT_NS::Exception) { - XmlRpcValue parameters; - XmlRpcValue result; - struct tm time; + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + struct tm time; - XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); + XmlRpc::XmlRpcClient xmlRpcClient("localhost", 3344, "/RPC2", false); // try to schedule playlist #1 for the time below + parameters.clear(); parameters["sessionId"] = sessionId->getId(); parameters["playlistId"] = "0000000000000001"; time.tm_year = 2001; diff --git a/livesupport/products/scheduler/src/RpcUploadPlaylistTest.h b/livesupport/products/scheduler/src/RpcUploadPlaylistTest.h index 65ffc2738..47b169d72 100644 --- a/livesupport/products/scheduler/src/RpcUploadPlaylistTest.h +++ b/livesupport/products/scheduler/src/RpcUploadPlaylistTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/RpcUploadPlaylistTest.h,v $ ------------------------------------------------------------------------------*/ @@ -42,15 +42,14 @@ #include -#include "LiveSupport/Authentication/AuthenticationClientInterface.h" +#include "LiveSupport/Core/Ptr.h" #include "LiveSupport/Core/SessionId.h" + namespace LiveSupport { namespace Scheduler { -using namespace LiveSupport; using namespace LiveSupport::Core; -using namespace LiveSupport::Authentication; /* ================================================================ constants */ @@ -64,7 +63,7 @@ using namespace LiveSupport::Authentication; * Unit test to test the uploadPlaylist XML-RPC call. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see SchedulerDaemon */ class RpcUploadPlaylistTest : public CPPUNIT_NS::TestFixture @@ -74,30 +73,12 @@ class RpcUploadPlaylistTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST_SUITE_END(); private: - /** - * An authentication client. - */ - Ptr::Ref authentication; /** * A session ID from the authentication client login() method. */ Ptr::Ref sessionId; - /** - * Configure a configurable with an XML file. - * - * @param configurable configure this - * @param fileName the name of the XML file to configure with. - * @exception std::invalid_argument on configuration errors. - * @exception xmlpp::exception on XML parsing errors. - */ - void - configure(Ptr::Ref configurable, - const std::string & fileName) - throw (std::invalid_argument, - xmlpp::exception); - protected: /** diff --git a/livesupport/products/scheduler/src/SchedulerDaemon.cxx b/livesupport/products/scheduler/src/SchedulerDaemon.cxx index 9e982e99e..77b3393ba 100644 --- a/livesupport/products/scheduler/src/SchedulerDaemon.cxx +++ b/livesupport/products/scheduler/src/SchedulerDaemon.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.20 $ + Version : $Revision: 1.21 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/SchedulerDaemon.cxx,v $ ------------------------------------------------------------------------------*/ @@ -139,6 +139,9 @@ SchedulerDaemon :: SchedulerDaemon (void) throw () updateFadeInFadeOutMethod.reset(new UpdateFadeInFadeOutMethod()); uploadPlaylistMethod.reset(new UploadPlaylistMethod()); validatePlaylistMethod.reset(new ValidatePlaylistMethod()); + loginMethod.reset(new LoginMethod()); + logoutMethod.reset(new LogoutMethod()); + resetStorageMethod.reset(new ResetStorageMethod()); } @@ -323,6 +326,9 @@ SchedulerDaemon :: registerXmlRpcFunctions( xmlRpcServer->addMethod(updateFadeInFadeOutMethod.get()); xmlRpcServer->addMethod(uploadPlaylistMethod.get()); xmlRpcServer->addMethod(validatePlaylistMethod.get()); + xmlRpcServer->addMethod(loginMethod.get()); + xmlRpcServer->addMethod(logoutMethod.get()); + xmlRpcServer->addMethod(resetStorageMethod.get()); } diff --git a/livesupport/products/scheduler/src/SchedulerDaemon.h b/livesupport/products/scheduler/src/SchedulerDaemon.h index 8cd707522..11d6f3ddb 100644 --- a/livesupport/products/scheduler/src/SchedulerDaemon.h +++ b/livesupport/products/scheduler/src/SchedulerDaemon.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.15 $ + Version : $Revision: 1.16 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/SchedulerDaemon.h,v $ ------------------------------------------------------------------------------*/ @@ -85,6 +85,9 @@ #include "UploadPlaylistMethod.h" #include "ValidatePlaylistMethod.h" #include "XmlRpcDaemon.h" +#include "LoginMethod.h" +#include "LogoutMethod.h" +#include "ResetStorageMethod.h" namespace LiveSupport { @@ -158,7 +161,7 @@ using namespace LiveSupport::PlaylistExecutor; * * * @author $Author: fgerlits $ - * @version $Revision: 1.15 $ + * @version $Revision: 1.16 $ * @see ConnectionManagerFactory * @see AuthenticationClientFactory * @see StorageClientFactory @@ -298,6 +301,21 @@ class SchedulerDaemon : public Installable, */ Ptr::Ref validatePlaylistMethod; + /** + * The loginMethod the daemon is providing. + */ + Ptr::Ref loginMethod; + + /** + * The logoutMethod the daemon is providing. + */ + Ptr::Ref logoutMethod; + + /** + * The resetStorageMethod the daemon is providing. + */ + Ptr::Ref resetStorageMethod; + /** * Default constructor. */