//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-#include <UnitTestHelper.h>
+#include "UnitTestHelper.h"
-#include <RCSResponse.h>
-#include <RCSResourceObject.h>
-
-#include <RequestHandler.h>
-#include <ResourceAttributesConverter.h>
-
-#include <OCPlatform.h>
-
-using namespace std;
+#include "RCSResponse.h"
+#include "RCSSeparateResponse.h"
+#include "RCSException.h"
using namespace OIC::Service;
-using namespace OC;
-
-typedef OCStackResult (*registerResourceSig)(OCResourceHandle&,
- string&,
- const string&,
- const string&,
- EntityHandler,
- uint8_t );
-
-static constexpr char KEY[] = "key";
-
-
-void EXPECT_RESPONSE(shared_ptr< OCResourceResponse > ocResponse, int errorCode,
- const RCSResourceAttributes& attrs)
-{
- EXPECT_EQ(ocResponse->getErrorCode(), errorCode);
- EXPECT_EQ(ResourceAttributesConverter::fromOCRepresentation(
- ocResponse->getResourceRepresentation()), attrs);
-}
-
-
-class RCSResponseTest: public TestWithMock
-{
-public:
- template< typename T >
- shared_ptr< OCResourceResponse > buildResponse(const T& response)
- {
- RCSResourceObject::Ptr server =
- RCSResourceObject::Builder("a/test", "", "").build();
-
- return response.getHandler()->buildResponse(*server);
- }
-
-protected:
- void SetUp()
- {
- TestWithMock::SetUp();
-
- mocks.OnCallFuncOverload(static_cast< registerResourceSig >(OCPlatform::registerResource))
- .Return(OC_STACK_OK);
-
- mocks.OnCallFunc(OCPlatform::unregisterResource).Return(OC_STACK_OK);
- }
-};
-
-TEST_F(RCSResponseTest, GetDefaultActionHasEmptyAttrs)
-{
- EXPECT_RESPONSE(buildResponse(RCSGetResponse::defaultAction()),
- RequestHandler::DEFAULT_ERROR_CODE, RCSResourceAttributes());
-}
-
-TEST_F(RCSResponseTest, GetResponseHasResultsPassedCodes)
-{
- constexpr int errorCode{ -10 };
-
- EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(errorCode)),
- errorCode, RCSResourceAttributes());
-}
-
-TEST_F(RCSResponseTest, GetResponseHasAttrsAndResultsPassedCodes)
-{
- constexpr int errorCode{ -10 };
-
- RCSResourceAttributes attrs;
- attrs[KEY] = 100;
-
- EXPECT_RESPONSE(buildResponse(RCSGetResponse::create(attrs, errorCode)), errorCode, attrs);
-}
-
-TEST_F(RCSResponseTest, GetResponseCanMoveAttrs)
-{
- constexpr int errorCode{ -10 };
-
- RCSResourceAttributes attrs;
- attrs[KEY] = 100;
- RCSResourceAttributes attrsClone;
- attrsClone[KEY] = 100;
-
- EXPECT_RESPONSE(
- buildResponse(RCSGetResponse::create(std::move(attrs), errorCode)),
- errorCode, attrsClone);
-
- EXPECT_TRUE(attrs.empty());
-}
-
-TEST_F(RCSResponseTest, SetDefaultActionHasEmptyAttrs)
-{
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::defaultAction()),
- RequestHandler::DEFAULT_ERROR_CODE, RCSResourceAttributes());
-}
-
-TEST_F(RCSResponseTest, SetResponseHasResultsPassedCodes)
-{
- constexpr int errorCode{ -10 };
-
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(errorCode)),
- errorCode, RCSResourceAttributes());
-}
-
-TEST_F(RCSResponseTest, SetResponseHasAttrsAndResultsPassedCodes)
-{
- constexpr int errorCode{ -10 };
-
- RCSResourceAttributes attrs;
- attrs[KEY] = 100;
-
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(attrs, errorCode)),
- errorCode, attrs);
-}
-
-TEST_F(RCSResponseTest, SetResponseCanMoveAttrs)
-{
- constexpr int errorCode{ -10 };
-
- RCSResourceAttributes attrs;
- attrs[KEY] = 100;
-
- RCSResourceAttributes attrsClone;
- attrsClone[KEY] = 100;
-
- EXPECT_RESPONSE(buildResponse(RCSSetResponse::create(std::move(attrs), errorCode)),
- errorCode, attrsClone);
-
- EXPECT_TRUE(attrs.empty());
-}
-
-
-TEST_F(RCSResponseTest, DefaultSetResponseHasDefaultMethod)
+TEST(RCSResponseTest, DefaultSetResponseHasDefaultMethod)
{
EXPECT_EQ(RCSSetResponse::AcceptanceMethod::DEFAULT,
RCSSetResponse::defaultAction().getAcceptanceMethod());
}
-TEST_F(RCSResponseTest, AcceptSetResponseHasAcceptMethod)
+TEST(RCSResponseTest, AcceptSetResponseHasAcceptMethod)
{
EXPECT_EQ(RCSSetResponse::AcceptanceMethod::ACCEPT,
RCSSetResponse::accept().getAcceptanceMethod());
}
-TEST_F(RCSResponseTest, IgnoreSetResponseHasIgnoreMethod)
+TEST(RCSResponseTest, IgnoreSetResponseHasIgnoreMethod)
{
EXPECT_EQ(RCSSetResponse::AcceptanceMethod::IGNORE,
RCSSetResponse::ignore().getAcceptanceMethod());
}
-TEST_F(RCSResponseTest, SetResponseHasMethodSetBySetter)
+TEST(RCSResponseTest, SetResponseHasMethodSetBySetter)
{
RCSSetResponse::AcceptanceMethod method = RCSSetResponse::AcceptanceMethod::ACCEPT;
RCSSetResponse response =
EXPECT_EQ(method, response.getAcceptanceMethod());
}
+
+TEST(RCSResponseTest, SeparateResponseHasNoHandler)
+{
+ RCSGetResponse response = RCSGetResponse::separate();
+ EXPECT_EQ(nullptr, response.getHandler());
+}
+
+TEST(RCSResponseTest, ThrowIfRequestIsInvalidWhenConstructingSeparateResponse)
+{
+ RCSRequest aRequest;
+
+ EXPECT_THROW(RCSSeparateResponse resp(aRequest), RCSInvalidParameterException);
+}