class Scene
{
public:
-
- /**
- * @class InvalidAddMemberRequestException
- *
- * @brief If request of adding member is invalid, throw InvalidMemberRequestException.
- * Adding member is invalid that scene member resource is already registered.
- */
- class InvalidAddMemberRequestException: public RCSException
- {
- public:
- InvalidAddMemberRequestException(std::string&& what) :
- RCSException{ std::move(what) } {}
- };
-
typedef std::shared_ptr< Scene > Ptr;
/**
* @return A shared pointer of SceneAction instance
*
* @throws RCSInvalidParameterException if pRCSRemoteResourceObject is nullptr
- * @throws InvalidAddMemberRequestException
- * if scene member resource is already registered
+ * @throws RCSBadRequestException if scene member resource is already registered
*
* @note SceneAction instance is only produced by Scene class
*
* @return A shared pointer of SceneAction instance
*
* @throws RCSInvalidParameterException if pRCSRemoteResourceObject is nullptr
- * @throws InvalidAddMemberRequestException if SceneMember is already registered
+ * @throws RCSBadRequestException if SceneMember is already registered
*
* @note SceneAction instance is only produced by Scene class
*
*
* @return A shared pointer of Scene instance
*
+ * @throw RCSInvalidParameterException if scene name is empty
+ * @throw RCSInvalidParameterException if scene name is dupltcated
+ *
* @note Scene instance is only produced by SceneCollection class
* @note Scene's name must unique in one SceneCollection resource
*/
{
m_sceneCollectionResource->addSceneMember(sceneMemberResObj);
}
- catch(std::exception& e)
+ catch(RCSBadRequestException& e)
{
auto sceneMemberRes = m_sceneCollectionResource->findSceneMembers(m_name);
if(it != sceneMemberRes.end())
{
- throw InvalidAddMemberRequestException(
+ throw RCSBadRequestException(
"It is already registered member. Please set Execution Parameter!");
}
}
m_sceneCollectionResource->addScene(sceneName);
+
return Scene::Ptr(new Scene(sceneName, m_sceneCollectionResource));
}
createSceneCollectionAndScene();
createSceneAction();
ASSERT_THROW(pScene1->addNewSceneAction(
- pRemoteResource1, KEY, "off"), Scene::InvalidAddMemberRequestException);
+ pRemoteResource1, KEY, "off"), RCSBadRequestException);
}
TEST_F(SceneActionTest, getSceneActionInstance)
createSceneAction();
ASSERT_EQ(pSceneAction1->getRemoteResourceObject(), pRemoteResource1);
-}
\ No newline at end of file
+}