added XmlRpcTools to uml model
modified createPlaylist to lock playlist for editing (forgot earlier)
This commit is contained in:
parent
a815a437d9
commit
8837f77e65
Binary file not shown.
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.1 $
|
Version : $Revision: 1.2 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -70,6 +70,11 @@ using namespace LiveSupport::Scheduler;
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
const std::string CreatePlaylistMethod::methodName = "createPlaylist";
|
const std::string CreatePlaylistMethod::methodName = "createPlaylist";
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
* The ID of this method for error reporting purposes.
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
const int CreatePlaylistMethod::errorId = 2000;
|
||||||
|
|
||||||
|
|
||||||
/* =============================================== local function prototypes */
|
/* =============================================== local function prototypes */
|
||||||
|
|
||||||
|
@ -102,5 +107,11 @@ CreatePlaylistMethod :: execute(XmlRpc::XmlRpcValue & parameters,
|
||||||
|
|
||||||
Ptr<Playlist>::Ref playlist = storage->createPlaylist();
|
Ptr<Playlist>::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);
|
XmlRpcTools :: playlistToXmlRpcValue(playlist, returnValue);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.1 $
|
Version : $Revision: 1.2 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethod.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -75,9 +75,15 @@ using namespace LiveSupport::Core;
|
||||||
* <li>playlength - int - the playlist length of the playlist, in seconds
|
* <li>playlength - int - the playlist length of the playlist, in seconds
|
||||||
* </li>
|
* </li>
|
||||||
* </ul>
|
* </ul>
|
||||||
|
* If there is an error, an XML-RPC structure is returned, with the following
|
||||||
|
* fields:
|
||||||
|
* <ul>
|
||||||
|
* <li>errorCode - int - a numerical code for the error</li>
|
||||||
|
* <li>errorMessage - string - a description of the error</li>
|
||||||
|
* </ul>
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.1 $
|
* @version $Revision: 1.2 $
|
||||||
*/
|
*/
|
||||||
class CreatePlaylistMethod : public XmlRpc::XmlRpcServerMethod
|
class CreatePlaylistMethod : public XmlRpc::XmlRpcServerMethod
|
||||||
{
|
{
|
||||||
|
@ -88,6 +94,11 @@ class CreatePlaylistMethod : public XmlRpc::XmlRpcServerMethod
|
||||||
*/
|
*/
|
||||||
static const std::string methodName;
|
static const std::string methodName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The ID of this method for error reporting purposes.
|
||||||
|
*/
|
||||||
|
static const int errorId;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.1 $
|
Version : $Revision: 1.2 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/CreatePlaylistMethodTest.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -47,8 +47,10 @@
|
||||||
#include "LiveSupport/Db/ConnectionManagerFactory.h"
|
#include "LiveSupport/Db/ConnectionManagerFactory.h"
|
||||||
#include "LiveSupport/Storage/StorageClientFactory.h"
|
#include "LiveSupport/Storage/StorageClientFactory.h"
|
||||||
#include "CreatePlaylistMethod.h"
|
#include "CreatePlaylistMethod.h"
|
||||||
|
#include "OpenPlaylistForEditingMethod.h"
|
||||||
#include "CreatePlaylistMethodTest.h"
|
#include "CreatePlaylistMethodTest.h"
|
||||||
|
|
||||||
|
using namespace XmlRpc;
|
||||||
|
|
||||||
using namespace LiveSupport::Db;
|
using namespace LiveSupport::Db;
|
||||||
using namespace LiveSupport::Storage;
|
using namespace LiveSupport::Storage;
|
||||||
|
@ -138,11 +140,23 @@ void
|
||||||
CreatePlaylistMethodTest :: firstTest(void)
|
CreatePlaylistMethodTest :: firstTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<CreatePlaylistMethod>::Ref method(new CreatePlaylistMethod());
|
Ptr<XmlRpcServerMethod>::Ref method(new CreatePlaylistMethod());
|
||||||
XmlRpc::XmlRpcValue parameter;
|
XmlRpc::XmlRpcValue parameter;
|
||||||
XmlRpc::XmlRpcValue result;
|
XmlRpc::XmlRpcValue result;
|
||||||
|
|
||||||
method->execute(parameter, result);
|
method->execute(parameter, result);
|
||||||
CPPUNIT_ASSERT(result.hasMember("id"));
|
CPPUNIT_ASSERT(result.hasMember("id"));
|
||||||
CPPUNIT_ASSERT(((int) result["playlength"]) == 0);
|
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"] == 1005);
|
||||||
|
CPPUNIT_ASSERT((const std::string) result["errorMessage"] ==
|
||||||
|
"playlist cannot be edited");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue