From 4bcf8acfb645daf9bd9ea93f4210e8f364267208 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Wed, 13 Oct 2004 16:46:58 +0000 Subject: [PATCH] fixed some problems with createPlaylist and openPlaylistForEditing --- livesupport/modules/core/etc/Makefile.in | 6 +- .../scheduler/doc/model/SchedulerModel.zuml | Bin 101919 -> 102546 bytes .../products/scheduler/etc/Makefile.in | 8 +- .../scheduler/src/CreatePlaylistMethod.cxx | 117 ++++++++++++ .../scheduler/src/CreatePlaylistMethod.h | 147 +++++++++++++++ .../src/CreatePlaylistMethodTest.cxx | 162 ++++++++++++++++ .../scheduler/src/CreatePlaylistMethodTest.h | 136 ++++++++++++++ .../src/OpenPlaylistForEditingMethod.cxx | 149 +++++++++++++++ .../src/OpenPlaylistForEditingMethod.h | 157 ++++++++++++++++ .../src/OpenPlaylistForEditingMethodTest.cxx | 173 ++++++++++++++++++ .../src/OpenPlaylistForEditingMethodTest.h | 135 ++++++++++++++ 11 files changed, 1182 insertions(+), 8 deletions(-) create mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethod.cxx create mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethod.h create mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx create mode 100644 livesupport/products/scheduler/src/CreatePlaylistMethodTest.h create mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx create mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h create mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx create mode 100644 livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h diff --git a/livesupport/modules/core/etc/Makefile.in b/livesupport/modules/core/etc/Makefile.in index 3b8c187b6..db8b16901 100644 --- a/livesupport/modules/core/etc/Makefile.in +++ b/livesupport/modules/core/etc/Makefile.in @@ -21,7 +21,7 @@ # # # Author : $Author: fgerlits $ -# Version : $Revision: 1.5 $ +# Version : $Revision: 1.6 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/etc/Makefile.in,v $ # # @configure_input@ @@ -85,11 +85,9 @@ LDFLAGS = @LDFLAGS@ -L${USR_LIB_DIR} -L${LIB_DIR} # Dependencies #------------------------------------------------------------------------------- CORE_LIB_OBJS = ${TMP_DIR}/UniqueId.o \ - ${TMP_DIR}/Playlist.o \ - ${TMP_DIR}/AudioClip.o + ${TMP_DIR}/Playlist.o TEST_RUNNER_OBJS = ${TMP_DIR}/PlaylistTest.o \ - ${TMP_DIR}/AudioClipTest.o \ ${TMP_DIR}/TestRunner.o TEST_RUNNER_LIBS = -l${CORE_LIB} -lxml++-1.0 -lcppunit -ldl diff --git a/livesupport/products/scheduler/doc/model/SchedulerModel.zuml b/livesupport/products/scheduler/doc/model/SchedulerModel.zuml index 726140fadd0104247f9cc8e1d02517e5e646a6ab..ab5f958122ef312f6bcf71ce82defe126a5e78af 100644 GIT binary patch delta 79235 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

CGXe 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 diff --git a/livesupport/products/scheduler/etc/Makefile.in b/livesupport/products/scheduler/etc/Makefile.in index 223ce171c..165d43bb3 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.11 $ +# Version : $Revision: 1.12 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $ # # @configure_input@ @@ -121,8 +121,8 @@ SCHEDULER_OBJS = ${TMP_DIR}/SignalDispatcher.o \ ${TMP_DIR}/PostgresqlSchedule.o \ ${TMP_DIR}/DeletePlaylistMethod.o \ ${TMP_DIR}/DisplayPlaylistsMethod.o \ - ${TMP_DIR}/CreatePlaylistMethod.o \ - ${TMP_DIR}/OpenPlaylistForEditingMethod.o + ${TMP_DIR}/OpenPlaylistForEditingMethod.o \ + ${TMP_DIR}/CreatePlaylistMethod.o SCHEDULER_EXE_OBJS = ${SCHEDULER_OBJS} \ ${TMP_DIR}/main.o @@ -146,8 +146,8 @@ TEST_RUNNER_OBJS = ${SCHEDULER_OBJS} \ ${TMP_DIR}/PostgresqlScheduleTest.o \ ${TMP_DIR}/DeletePlaylistMethodTest.o \ ${TMP_DIR}/DisplayPlaylistsMethodTest.o \ - ${TMP_DIR}/CreatePlaylistMethodTest.o \ ${TMP_DIR}/OpenPlaylistForEditingMethodTest.o \ + ${TMP_DIR}/CreatePlaylistMethodTest.o \ ${TMP_DIR}/TestRunner.o TEST_RUNNER_LIBS = ${SCHEDULER_EXE_LIBS} -lcppunit -ldl diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx b/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx new file mode 100644 index 000000000..4819bcddb --- /dev/null +++ b/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx @@ -0,0 +1,117 @@ +/*------------------------------------------------------------------------------ + + 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.4 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#ifdef HAVE_TIME_H +#include +#else +#error need time.h +#endif + + +#include + +#include "LiveSupport/Core/StorageClientInterface.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "ScheduleInterface.h" +#include "ScheduleFactory.h" +#include "XmlRpcTools.h" + +#include "CreatePlaylistMethod.h" + + +using namespace boost; +using namespace boost::posix_time; + +using namespace LiveSupport; +using namespace LiveSupport::Core; +using namespace LiveSupport::Storage; + +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string CreatePlaylistMethod::methodName = "createPlaylist"; + +/*------------------------------------------------------------------------------ + * The ID of this method for error reporting purposes. + *----------------------------------------------------------------------------*/ +const int CreatePlaylistMethod::errorId = 200; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +CreatePlaylistMethod :: CreatePlaylistMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Execute the stop XML-RPC function call. + *----------------------------------------------------------------------------*/ +void +CreatePlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + Ptr::Ref scf; + Ptr::Ref storage; + + scf = StorageClientFactory::getInstance(); + storage = scf->getStorageClient(); + + Ptr::Ref playlist = storage->createPlaylist(); + + if (!playlist->setLockedForEditing(true)) { // this should never happen + XmlRpcTools :: markError(errorId+1, + "could not open new playlist for editing", + returnValue); + return; + } + XmlRpcTools :: playlistToXmlRpcValue(playlist, returnValue); +} diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethod.h b/livesupport/products/scheduler/src/CreatePlaylistMethod.h new file mode 100644 index 000000000..1541f0725 --- /dev/null +++ b/livesupport/products/scheduler/src/CreatePlaylistMethod.h @@ -0,0 +1,147 @@ +/*------------------------------------------------------------------------------ + + 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.4 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef CreatePlaylistMethod_h +#define CreatePlaylistMethod_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 + +#include "LiveSupport/Core/Ptr.h" +#include "LiveSupport/Core/Playlist.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to create a new playlist in the playlist store. + * + * The name of the method when called through XML-RPC is "createPlaylist". + * + * The XML-RPC function returns an XML-RPC structure, containing the following + * fields: + *

    + *
  • id - int - the unique id of the new playlist
  • + *
  • playlength - int - the playlist length of the playlist, in seconds + *
  • + *
+ * If there is an error, an XML-RPC structure is returned, with the following + * fields: + *
    + *
  • errorCode - int - a numerical code for the error
  • + *
  • errorMessage - string - a description of the error
  • + *
+ * The possible error codes are: + *
    + *
  • 201 - could not open new playlist for editing
  • + *
+ * + * @author $Author: fgerlits $ + * @version $Revision: 1.4 $ + */ +class CreatePlaylistMethod : 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. + */ + CreatePlaylistMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + CreatePlaylistMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the create playlist 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 (); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // CreatePlaylistMethod_h + diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx new file mode 100644 index 000000000..edc1dfb4c --- /dev/null +++ b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx @@ -0,0 +1,162 @@ +/*------------------------------------------------------------------------------ + + 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.4 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.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/Db/ConnectionManagerFactory.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "CreatePlaylistMethod.h" +#include "OpenPlaylistForEditingMethod.h" +#include "CreatePlaylistMethodTest.h" + +using namespace XmlRpc; + +using namespace LiveSupport::Db; +using namespace LiveSupport::Storage; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +CPPUNIT_TEST_SUITE_REGISTRATION(CreatePlaylistMethodTest); + +/** + * The name of the configuration file for the storage client factory. + */ +const std::string CreatePlaylistMethodTest::storageClientConfig = + "etc/storageClient.xml"; + +/** + * The name of the configuration file for the connection manager factory. + */ +const std::string CreatePlaylistMethodTest::connectionManagerConfig = + "etc/connectionManagerFactory.xml"; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Configure a Configurable with an XML file. + *----------------------------------------------------------------------------*/ +void +CreatePlaylistMethodTest :: 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 +CreatePlaylistMethodTest :: setUp(void) throw () +{ + try { + Ptr::Ref scf + = StorageClientFactory::getInstance(); + configure(scf, storageClientConfig); + + Ptr::Ref cmf + = ConnectionManagerFactory::getInstance(); + configure(cmf, connectionManagerConfig); + + } 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()); + } +} + + +/*------------------------------------------------------------------------------ + * Clean up the test environment + *----------------------------------------------------------------------------*/ +void +CreatePlaylistMethodTest :: tearDown(void) throw () +{ +} + + +/*------------------------------------------------------------------------------ + * Just a very simple smoke test + *----------------------------------------------------------------------------*/ +void +CreatePlaylistMethodTest :: firstTest(void) + throw (CPPUNIT_NS::Exception) +{ + Ptr::Ref method(new CreatePlaylistMethod()); + XmlRpc::XmlRpcValue parameter; + XmlRpc::XmlRpcValue result; + + method->execute(parameter, result); + CPPUNIT_ASSERT(result.hasMember("id")); + CPPUNIT_ASSERT(((int) result["playlength"]) == 0); + + int playlistId = (int) result["id"]; + method.reset(new OpenPlaylistForEditingMethod()); + parameter.clear(); + result.clear(); + parameter["playlistId"] = playlistId; + + // should not allow to open the same playlist for editing again + method->execute(parameter, result); + CPPUNIT_ASSERT((int) result["errorCode"] == 105); + CPPUNIT_ASSERT((const std::string) result["errorMessage"] == + "playlist could not be opened (already open?)"); +} diff --git a/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h new file mode 100644 index 000000000..2f1eddbb5 --- /dev/null +++ b/livesupport/products/scheduler/src/CreatePlaylistMethodTest.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.3 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef CreatePlaylistMethodTest_h +#define CreatePlaylistMethodTest_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 { + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * Unit test for the CreatePlaylistMethod class. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.3 $ + * @see CreatePlaylistMethod + */ +class CreatePlaylistMethodTest : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE(CreatePlaylistMethodTest); + CPPUNIT_TEST(firstTest); + CPPUNIT_TEST_SUITE_END(); + + /** + * 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; + + /** + * 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: + + /** + * 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 // CreatePlaylistMethodTest_h + diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx new file mode 100644 index 000000000..6f65f36a9 --- /dev/null +++ b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx @@ -0,0 +1,149 @@ +/*------------------------------------------------------------------------------ + + 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.3 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#ifdef HAVE_TIME_H +#include +#else +#error need time.h +#endif + + +#include + +#include "LiveSupport/Core/StorageClientInterface.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "ScheduleInterface.h" +#include "ScheduleFactory.h" +#include "XmlRpcTools.h" + +#include "OpenPlaylistForEditingMethod.h" + + +using namespace boost; +using namespace boost::posix_time; + +using namespace LiveSupport; +using namespace LiveSupport::Core; +using namespace LiveSupport::Storage; + +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string OpenPlaylistForEditingMethod::methodName = "openPlaylistForEditing"; + +/*------------------------------------------------------------------------------ + * The ID of this method for error reporting purposes. + *----------------------------------------------------------------------------*/ +const int OpenPlaylistForEditingMethod::errorId = 100; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +OpenPlaylistForEditingMethod :: OpenPlaylistForEditingMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Execute the stop XML-RPC function call. + *----------------------------------------------------------------------------*/ +void +OpenPlaylistForEditingMethod :: execute(XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + if (!parameters.valid()) { + XmlRpcTools::markError(errorId+1, "invalid argument format", + returnValue); + return; + } + + Ptr::Ref id; + try{ + id = XmlRpcTools::extractPlaylistId(parameters); + } + catch (std::invalid_argument &e) { + XmlRpcTools::markError(errorId+2, "argument is not a playlist ID", + returnValue); + return; + } + + Ptr::Ref scf; + Ptr::Ref storage; + + scf = StorageClientFactory::getInstance(); + storage = scf->getStorageClient(); + + if (!storage->existsPlaylist(id)) { + XmlRpcTools::markError(errorId+3, "playlist does not exist", + returnValue); + return; + } + + Ptr::Ref playlist; + try { + playlist = storage->getPlaylist(id); + } + catch (std::invalid_argument &e) { + XmlRpcTools::markError(errorId+4, "could not open playlist", + returnValue); + return; + } + + if (!playlist->setLockedForEditing(true)) { + XmlRpcTools::markError(errorId+5, "playlist could not be opened (already open?)", + returnValue); + return; + } + + XmlRpcTools::playlistToXmlRpcValue(playlist, returnValue); + + return; +} diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h new file mode 100644 index 000000000..fd03087cf --- /dev/null +++ b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h @@ -0,0 +1,157 @@ +/*------------------------------------------------------------------------------ + + 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.3 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef OpenPlaylistForEditingMethod_h +#define OpenPlaylistForEditingMethod_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 + +#include "LiveSupport/Core/Ptr.h" +#include "LiveSupport/Core/Playlist.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to open a playlist (specified by its playlist id) + * for editing. + * + * The name of the method when called through XML-RPC is + * "openPlaylistForEditing". + * The expected parameter is an XML-RPC structure, with the following + * member: + *
    + *
  • playlistId - int - the unique id of the playlist requested.
  • + *
+ * + * The XML-RPC function returns an XML-RPC structure, containing the following + * fields: + *
    + *
  • id - int - the unique id of the playlist
  • + *
  • playlength - int - the playlist length of the playlist, in seconds + *
  • + *
+ * In case of an error, an XML-RPC structure is returned, with the following + * fields: + *
    + *
  • errorCode - int - the id of the error condition
  • + *
  • errorMessage - string - a description of the error
  • + *
+ * The possible error codes are: + *
    + *
  • 101 - invalid argument format
  • + *
  • 102 - argument is not a playlist ID
  • + *
  • 103 - playlist does not exist
  • + *
  • 104 - could not open playlist
  • + *
  • 105 - playlist could not be opened (already open?)
  • + *
+ * @author $Author: fgerlits $ + * @version $Revision: 1.3 $ + */ +class OpenPlaylistForEditingMethod : 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. + */ + OpenPlaylistForEditingMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + OpenPlaylistForEditingMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the display schedule 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 (); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // OpenPlaylistForEditingMethod_h + diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx new file mode 100644 index 000000000..123da1485 --- /dev/null +++ b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.cxx @@ -0,0 +1,173 @@ +/*------------------------------------------------------------------------------ + + 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.3 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.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/Db/ConnectionManagerFactory.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "XmlRpcTools.h" + +#include "OpenPlaylistForEditingMethod.h" +#include "OpenPlaylistForEditingMethodTest.h" + + +using namespace LiveSupport::Db; +using namespace LiveSupport::Storage; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +CPPUNIT_TEST_SUITE_REGISTRATION(OpenPlaylistForEditingMethodTest); + +/** + * The name of the configuration file for the storage client factory. + */ +const std::string OpenPlaylistForEditingMethodTest::storageClientConfig = + "etc/storageClient.xml"; + +/** + * The name of the configuration file for the connection manager factory. + */ +const std::string OpenPlaylistForEditingMethodTest::connectionManagerConfig = + "etc/connectionManagerFactory.xml"; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Configure a Configurable with an XML file. + *----------------------------------------------------------------------------*/ +void +OpenPlaylistForEditingMethodTest :: 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 +OpenPlaylistForEditingMethodTest :: setUp(void) throw () +{ + try { + Ptr::Ref scf + = StorageClientFactory::getInstance(); + configure(scf, storageClientConfig); + + Ptr::Ref cmf + = ConnectionManagerFactory::getInstance(); + configure(cmf, connectionManagerConfig); + + } 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()); + } +} + + +/*------------------------------------------------------------------------------ + * Clean up the test environment + *----------------------------------------------------------------------------*/ +void +OpenPlaylistForEditingMethodTest :: tearDown(void) throw () +{ +} + + +/*------------------------------------------------------------------------------ + * Just a very simple smoke test + *----------------------------------------------------------------------------*/ +void +OpenPlaylistForEditingMethodTest :: firstTest(void) + throw (CPPUNIT_NS::Exception) +{ + Ptr::Ref + method(new OpenPlaylistForEditingMethod()); + XmlRpc::XmlRpcValue parameter; + XmlRpc::XmlRpcValue result; + + parameter["playlistId"] = 1; + + method->execute(parameter, result); + CPPUNIT_ASSERT((int) result["id"] == 1); + CPPUNIT_ASSERT((int) result["playlength"] == (60 * 60)); + + parameter.clear(); + result.clear(); + parameter["playlistId"] = 6376; + + // no such playlist + method->execute(parameter, result); + CPPUNIT_ASSERT((int) result["errorCode"] == 103); + CPPUNIT_ASSERT((const std::string) result["errorMessage"] == + "playlist does not exist"); + parameter.clear(); + result.clear(); + parameter["playlistId"] = 1; + + // should not allow to open the same playlist for editing again + method->execute(parameter, result); + CPPUNIT_ASSERT((int) result["errorCode"] == 105); + CPPUNIT_ASSERT((const std::string) result["errorMessage"] == + "playlist could not be opened (already open?)"); + +} diff --git a/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h new file mode 100644 index 000000000..ec9a01f88 --- /dev/null +++ b/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h @@ -0,0 +1,135 @@ +/*------------------------------------------------------------------------------ + + 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.3 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/OpenPlaylistForEditingMethodTest.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef OpenPlaylistForEditingMethodTest_h +#define OpenPlaylistForEditingMethodTest_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 { + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * Unit test for the OpenPlaylistForEditingMethod class. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.3 $ + * @see OpenPlaylistForEditingMethod + */ +class OpenPlaylistForEditingMethodTest : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE(OpenPlaylistForEditingMethodTest); + CPPUNIT_TEST(firstTest); + CPPUNIT_TEST_SUITE_END(); + + /** + * 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; + + /** + * 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: + + /** + * 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 // OpenPlaylistForEditingMethodTest_h +