Eliminate useless codes and add unittests.
Change-Id: I95ca4493b0d2ea3d121503336bb6bf94c484fe89
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5241
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
LOCAL_MODULE := rcs_jni
LOCAL_C_INCLUDES := $(LOCAL_PATH)/util
+LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/include
LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common
LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/stack/include
LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/extlibs/boost/boost_1_58_0
#include "RCSResponse.h"
#include "RCSResourceAttributes.h"
-namespace OC
-{
- class OCRepresentation;
-}
+#include "OCRepresentation.h"
namespace OIC
{
class RequestHandler
{
- private:
- typedef std::function< OC::OCRepresentation() > RepresentationBuilder;
-
public:
-
RequestHandler();
RequestHandler(const RequestHandler&) = delete;
private:
const int m_errorCode;
- const RepresentationBuilder m_repBuilder;
+ const bool m_customRep;
+ const OC::OCRepresentation m_ocRep;
};
class SetRequestHandler: public RequestHandler
typedef std::vector< AttrKeyValuePair > AttrKeyValuePairs;
public:
- typedef std::shared_ptr< SetRequestHandler > Ptr;
-
SetRequestHandler(const SetRequestHandler&) = delete;
SetRequestHandler(SetRequestHandler&&) = default;
//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-#include <RequestHandler.h>
+#include "RequestHandler.h"
-#include <OCResourceResponse.h>
-#include <ResourceAttributesConverter.h>
-#include <RCSResourceObject.h>
-#include <ResourceAttributesUtils.h>
-
-#include <octypes.h>
+#include "ResourceAttributesConverter.h"
+#include "RCSResourceObject.h"
+#include "ResourceAttributesUtils.h"
namespace
{
RequestHandler::RequestHandler() :
m_errorCode{ DEFAULT_ERROR_CODE },
- m_repBuilder{ }
+ m_customRep{ false },
+ m_ocRep{ }
{
}
RequestHandler::RequestHandler(int errorCode) :
m_errorCode{ errorCode },
- m_repBuilder{ }
+ m_customRep{ false },
+ m_ocRep{ }
{
}
RequestHandler::RequestHandler(const RCSResourceAttributes& attrs, int errorCode) :
m_errorCode{ errorCode },
- m_repBuilder{ std::bind(ResourceAttributesConverter::toOCRepresentation, attrs) }
+ m_customRep{ true },
+ m_ocRep{ ResourceAttributesConverter::toOCRepresentation(attrs) }
{
}
RequestHandler::RequestHandler(RCSResourceAttributes&& attrs, int errorCode) :
m_errorCode{ errorCode },
- m_repBuilder{ std::bind(ResourceAttributesConverter::toOCRepresentation,
- std::move(attrs)) }
+ m_customRep{ true },
+ m_ocRep{ ResourceAttributesConverter::toOCRepresentation(std::move(attrs)) }
{
}
bool RequestHandler::hasCustomRepresentation() const
{
- return m_repBuilder != nullptr;
+ return m_customRep;
}
OC::OCRepresentation RequestHandler::getRepresentation() const
{
- assert(m_repBuilder);
- return m_repBuilder();
+ return m_ocRep;
}
SetRequestHandler::SetRequestHandler() :
//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-#include <UnitTestHelper.h>
+#include "UnitTestHelper.h"
-#include <RequestHandler.h>
-#include <RCSResourceObject.h>
+#include "RequestHandler.h"
+#include "RCSResourceObject.h"
+#include "ResourceAttributesConverter.h"
-#include <OCPlatform.h>
+#include "OCPlatform.h"
using namespace std;
typedef OCStackResult (*RegisterResource)(OCResourceHandle&, std::string&,
const std::string&, const std::string&, OC::EntityHandler, uint8_t);
+TEST(RequestHandlerTest, DefaultHasNoCustomRepresntation)
+{
+ ASSERT_FALSE(RequestHandler().hasCustomRepresentation());
+}
-class RequestHandlerTest: public TestWithMock
+TEST(RequestHandlerTest, HasCustomRepresentationIfConstructedWithAttributes)
+{
+ ASSERT_TRUE(RequestHandler(RCSResourceAttributes{ }).hasCustomRepresentation());
+}
+
+TEST(RequestHandlerTest, CustomRepresentationContainsSameAttributesPassedToConstructor)
+{
+ RCSResourceAttributes attrs;
+ attrs[EXISTING] = ORIGIN_VALUE;
+
+ RequestHandler handler(attrs);
+
+ auto converted = ResourceAttributesConverter::fromOCRepresentation(handler.getRepresentation());
+ ASSERT_EQ(attrs, converted);
+}
+
+
+class SetRequestHandlerAcceptanceTest: public TestWithMock
{
public:
RCSResourceObject::Ptr server;
+ std::shared_ptr< SetRequestHandler > setRequestHandler;
+
+ RCSResourceAttributes requestAttrs;
+
protected:
void SetUp()
{
server->setAutoNotifyPolicy(RCSResourceObject::AutoNotifyPolicy::NEVER);
server->setAttribute(EXISTING, ORIGIN_VALUE);
- }
-};
-
-class SetRequestHandlerAcceptanceTest: public RequestHandlerTest
-{
-public:
- SetRequestHandler::Ptr setRequestHandler;
-
- RCSResourceAttributes requestAttrs;
-
-protected:
- void SetUp()
- {
- RequestHandlerTest::SetUp();
setRequestHandler = make_shared< SetRequestHandler >();