//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-#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);
-class RequestHandlerTest: public TestWithMock
+TEST(RequestHandlerTest, DefaultHasNoCustomRepresntation)
{
-public:
- RCSResourceObject::Ptr server;
-
-protected:
- void SetUp()
- {
- TestWithMock::SetUp();
-
- mocks.OnCallFuncOverload(static_cast<RegisterResource>(OC::OCPlatform::registerResource))
- .Return(OC_STACK_OK);
-
- mocks.OnCallFunc(OC::OCPlatform::unregisterResource).Return(OC_STACK_OK);
-
- server = RCSResourceObject::Builder("a/test", "resourcetype", "").build();
-
- server->setAutoNotifyPolicy(RCSResourceObject::AutoNotifyPolicy::NEVER);
- server->setAttribute(EXISTING, ORIGIN_VALUE);
- }
-};
-
-TEST_F(RequestHandlerTest, ResponseHasSameValuesPassedToHandlerConstructor)
-{
- RequestHandler handler{ -1000 };
-
- auto response = handler.buildResponse(*server);
-
- ASSERT_EQ(-1000, response->getErrorCode());
+ ASSERT_FALSE(RequestHandler().hasCustomRepresentation());
}
-TEST_F(RequestHandlerTest, ResponseHasSameAttrsWithServerAttrs)
+TEST(RequestHandlerTest, HasCustomRepresentationIfConstructedWithAttributes)
{
- RequestHandler handler{};
-
- auto response = handler.buildResponse(*server);
-
- ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[EXISTING].getValue<int>());
+ ASSERT_TRUE(RequestHandler(RCSResourceAttributes{ }).hasCustomRepresentation());
}
-TEST_F(RequestHandlerTest, ResponseHasAttrsSetByCustomAttrRequestHandler)
+TEST(RequestHandlerTest, CustomRepresentationContainsSameAttributesPassedToConstructor)
{
- constexpr char key[] { "key" };
- constexpr int newValue{ 100 };
-
RCSResourceAttributes attrs;
- attrs[key] = newValue;
- RequestHandler handler{ attrs };
+ attrs[EXISTING] = ORIGIN_VALUE;
- auto response = handler.buildResponse(*server);
+ RequestHandler handler(attrs);
- ASSERT_EQ(ORIGIN_VALUE, response->getResourceRepresentation()[key].getValue<int>());
+ auto converted = ResourceAttributesConverter::fromOCRepresentation(handler.getRepresentation());
+ ASSERT_EQ(attrs, converted);
}
-
-class SetRequestHandlerAcceptanceTest: public RequestHandlerTest
+class SetRequestHandlerAcceptanceTest: public TestWithMock
{
public:
- SetRequestHandler::Ptr setRequestHandler;
+ RCSResourceObject::Ptr server;
+
+ std::shared_ptr< SetRequestHandler > setRequestHandler;
RCSResourceAttributes requestAttrs;
protected:
void SetUp()
{
- RequestHandlerTest::SetUp();
+ TestWithMock::SetUp();
+
+ mocks.OnCallFuncOverload(static_cast<RegisterResource>(OC::OCPlatform::registerResource))
+ .Return(OC_STACK_OK);
+
+ mocks.OnCallFunc(OC::OCPlatform::unregisterResource).Return(OC_STACK_OK);
+
+ server = RCSResourceObject::Builder("a/test", "resourcetype", "").build();
+
+ server->setAutoNotifyPolicy(RCSResourceObject::AutoNotifyPolicy::NEVER);
+ server->setAttribute(EXISTING, ORIGIN_VALUE);
setRequestHandler = make_shared< SetRequestHandler >();