//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-extern "C" {
+extern "C"
+{
#include "ocstack.h"
#include "ocstackinternal.h"
#include "logger.h"
//-----------------------------------------------------------------------------
// Callback functions
//-----------------------------------------------------------------------------
-extern "C" OCStackApplicationResult asyncDoResourcesCallback(void* ctx, OCDoHandle handle, OCClientResponse * clientResponse) {
+extern "C" OCStackApplicationResult asyncDoResourcesCallback(void* ctx, OCDoHandle handle, OCClientResponse * clientResponse)
+{
OC_LOG(INFO, TAG, "Entering asyncDoResourcesCallback");
EXPECT_EQ(OC_STACK_OK, clientResponse->result);
return OC_STACK_KEEP_TRANSACTION;
}
+//-----------------------------------------------------------------------------
+// Entity handler
+//-----------------------------------------------------------------------------
+OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest)
+{
+ OC_LOG(INFO, TAG, "Entering entityHandler");
+
+ return OC_EH_OK;
+}
//-----------------------------------------------------------------------------
+// Local functions
+//-----------------------------------------------------------------------------
+void InitStack(OCMode mode)
+{
+ OC_LOG(INFO, TAG, "Entering InitStack");
+ uint8_t addr[20];
+ uint16_t port = USE_RANDOM_PORT;
+
+ OCGetInterfaceAddress(NULL, 0, AF_INET, addr, sizeof(addr));
+ OC_LOG_V(INFO, TAG, "InitStack on address %s",addr);
+
+ EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, mode));
+ OC_LOG(INFO, TAG, "Leaving InitStack");
+}
+
+uint8_t InitNumExpectedResources()
+{
+#ifdef WITH_PRESENCE
+ // When presence is enabled, it is a resource and so is (currently) included
+ // in the returned resource count returned by the OCGetNumberOfResources API.
+ return 1;
+#else
+ return 0;
+#endif
+}
+
+uint8_t InitResourceIndex()
+{
+#ifdef WITH_PRESENCE
+ // When presence is enabled, it is a resource and so is (currently) included
+ // in the returned resource count returned by the OCGetNumberOfResources API.
+ // The index of the presence resource is 0, so the first user app resource index
+ // is 1.
+ return 1;
+#else
+ return 0;
+#endif
+}
+//-----------------------------------------------------------------------------
// Tests
//-----------------------------------------------------------------------------
-#if 1
-TEST(StackTest, StackInitNullAddr) {
+
+TEST(StackInit, StackInitNullAddr)
+{
EXPECT_EQ(OC_STACK_OK, OCInit(0, 5683, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackInitNullPort) {
+TEST(StackInit, StackInitNullPort)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 0, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackInitNullAddrAndPort) {
+TEST(StackInit, StackInitNullAddrAndPort)
+{
EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackInitInvalidMode) {
+TEST(StackInit, StackInitInvalidMode)
+{
EXPECT_EQ(OC_STACK_ERROR, OCInit(0, 0, (OCMode)10));
EXPECT_EQ(OC_STACK_ERROR, OCStop());
}
-TEST(StackTest, StackStartSuccessClient) {
+TEST(StackStart, StackStartSuccessClient)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_CLIENT));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackStartSuccessServer) {
+TEST(StackStart, StackStartSuccessServer)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackStartSuccessClientServer) {
+TEST(StackStart, StackStartSuccessClientServer)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_CLIENT_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackStartSuccessiveInits) {
+TEST(StackStart, StackStartSuccessiveInits)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.2", 5683, OC_SERVER));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, DoResourceDeviceDiscovery) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
+TEST(StackDiscovery, DoResourceDeviceDiscovery)
+{
OCCallbackData cbData;
OCDoHandle handle;
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
- OC_LOG_V(INFO, TAG, "Starting DoResourceDeviceDiscovery test on address %s",addr);
+ OC_LOG(INFO, TAG, "Starting DoResourceDeviceDiscovery test ");
+ InitStack(OC_CLIENT);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_CLIENT));
/* Start a discovery query*/
char szQueryUri[64] = { 0 };
strcpy(szQueryUri, OC_WELL_KNOWN_QUERY);
cbData.cd = NULL;
EXPECT_EQ(OC_STACK_OK, OCDoResource(&handle, OC_REST_GET, szQueryUri, 0, 0, OC_LOW_QOS, &cbData, NULL, 0));
- //EXPECT_EQ(OC_STACK_OK, OCUpdateResources(SERVICE_URI));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, StackStopWithoutInit) {
+TEST(StackStop, StackStopWithoutInit)
+{
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_CLIENT));
EXPECT_EQ(OC_STACK_OK, OCStop());
EXPECT_EQ(OC_STACK_ERROR, OCStop());
}
-TEST(StackTest, UpdateResourceNullURI) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
+TEST(StackResource, UpdateResourceNullURI)
+{
OCCallbackData cbData;
OCDoHandle handle;
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
- OC_LOG_V(INFO, TAG, "Starting UpdateResourceNullURI test on address %s",addr);
+ OC_LOG(INFO, TAG, "Starting UpdateResourceNullURI test");
+ InitStack(OC_CLIENT);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_CLIENT));
/* Start a discovery query*/
char szQueryUri[64] = { 0 };
strcpy(szQueryUri, OC_WELL_KNOWN_QUERY);
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
EXPECT_EQ(OC_STACK_OK, OCDoResource(&handle, OC_REST_GET, szQueryUri, 0, 0, OC_LOW_QOS, &cbData, NULL, 0));
- //EXPECT_EQ(OC_STACK_INVALID_URI, OCUpdateResources(0));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, CreateResourceBadParams) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceBadParams)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceBadParams test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
"core.rw",
"/a/led",
0,
- 16));//OC_DISCOVERABLE|OC_OBSERVABLE));
+ 128));// invalid bitmask for OCResourceProperty
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-#endif
-TEST(StackTest, CreateResourceSuccess) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceSuccess)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceSuccess test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, CreateResourceFailDuplicateUri) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceFailDuplicateUri)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceFailDuplicateUri test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, CreateResourceMultipleResources) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceMultipleResources)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceMultipleResources test");
+ InitStack(OC_SERVER);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, CreateResourceBadResoureType) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceBadResoureType)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceBadResoureType test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_INVALID_PARAM, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, CreateResourceGoodResourceType) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, CreateResourceGoodResourceType)
+{
+ OC_LOG(INFO, TAG, "Starting CreateResourceGoodResourceType test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, ResourceTypeName) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, ResourceTypeName)
+{
+ OC_LOG(INFO, TAG, "Starting ResourceTypeName test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceTypeNameBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, ResourceTypeAttrRepresentation)
+{
+ OC_LOG(INFO, TAG, "Starting ResourceTypeAttrRepresentation test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
uint8_t numResourceTypes;
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
EXPECT_EQ(1, numResourceTypes);
- const char *resourceTypeName = OCGetResourceTypeName(handle, 0);
- EXPECT_STREQ("core.led", resourceTypeName);
- EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceTypeToResource(handle, NULL));
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
+TEST(StackResource, ResourceTypeInterface)
+{
+ OC_LOG(INFO, TAG, "Starting ResourceTypeInterface test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ uint8_t numResourceInterfaces;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceInterfaces(handle, &numResourceInterfaces));
+ EXPECT_EQ(1, numResourceInterfaces);
+ const char *resourceInterfaceName = OCGetResourceInterfaceName(handle, 0);
+ EXPECT_STREQ("core.rw", resourceInterfaceName);
+
+ // try getting resource interface names with an invalid index
+ resourceInterfaceName = OCGetResourceInterfaceName(handle, 1);
+ EXPECT_STREQ(NULL, resourceInterfaceName);
+ // try getting resource interface names with an invalid index
+ resourceInterfaceName = OCGetResourceInterfaceName(handle, 10);
+ EXPECT_STREQ(NULL, resourceInterfaceName);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceTypeNameGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
+TEST(StackResource, ResourceTypeInterfaceMethods)
+{
+ OC_LOG(INFO, TAG, "Starting ResourceTypeInterfaceMethods test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
+ uint8_t numResourceInterfaces;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceInterfaces(handle, &numResourceInterfaces));
+ EXPECT_EQ(1, numResourceInterfaces);
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResource, GetResourceProperties)
+{
+ OC_LOG(INFO, TAG, "Starting GetResourceProperties test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
- uint8_t numResourceTypes;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
- EXPECT_EQ(1, numResourceTypes);
- const char *resourceTypeName = OCGetResourceTypeName(handle, 0);
- EXPECT_STREQ("core.led", resourceTypeName);
+ EXPECT_EQ(OC_ACTIVE|OC_DISCOVERABLE|OC_OBSERVABLE, OCGetResourceProperties(handle));
+ EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
- EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.brightled"));
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
- EXPECT_EQ(2, numResourceTypes);
- resourceTypeName = OCGetResourceTypeName(handle, 1);
- EXPECT_STREQ("core.brightled", resourceTypeName);
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
- EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.reallybrightled"));
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
- EXPECT_EQ(3, numResourceTypes);
- resourceTypeName = OCGetResourceTypeName(handle, 2);
- EXPECT_STREQ("core.reallybrightled", resourceTypeName);
+TEST(StackResource, StackTestResourceDiscoverOneResourceBad)
+{
+ OC_LOG(INFO, TAG, "Starting StackTestResourceDiscoverOneResourceBad test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a1/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+ const char *url = OCGetResourceUri(handle);
+ EXPECT_STREQ("/a1/led", url);
+
+ //EXPECT_EQ(OC_STACK_INVALID_URI, OCHandleServerRequest(&res, uri, query, req, rsp));
+ EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
+ uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
+ EXPECT_EQ(numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, ResourceTypeAttrRepresentation) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
+TEST(StackResource, StackTestResourceDiscoverOneResource)
+{
+ OC_LOG(INFO, TAG, "Starting StackTestResourceDiscoverOneResource test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+ const char *url = OCGetResourceUri(handle);
+ EXPECT_STREQ("/a/led", url);
+
+ //EXPECT_EQ(OC_STACK_OK, OCHandleServerRequest(&res, uri, query, req, rsp));
+ EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
+TEST(StackResource, StackTestResourceDiscoverManyResources)
+{
+ OC_LOG(INFO, TAG, "Starting StackTestResourceDiscoverManyResources test");
+ InitStack(OC_SERVER);
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+ OCResourceHandle handle1;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
+ "core.led",
+ "core.rw",
+ "/a/led1",
+ 0,
+ OC_DISCOVERABLE));
+ const char *url = OCGetResourceUri(handle1);
+ EXPECT_STREQ("/a/led1", url);
+
+ OCResourceHandle handle2;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
+ "core.led",
+ "core.rw",
+ "/a/led2",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+ url = OCGetResourceUri(handle2);
+ EXPECT_STREQ("/a/led2", url);
+
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle2, "core.brightled"));
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle2, "core.colorled"));
+
+ OCResourceHandle handle3;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3,
+ "core.led",
+ "core.rw",
+ "/a/led3",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+ url = OCGetResourceUri(handle3);
+ EXPECT_STREQ("/a/led3", url);
+
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle3, "oc.mi.ll"));
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle3, "oc.mi.b"));
+
+ OCResourceHandle handle4;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle4,
+ "core.led",
+ "core.rw",
+ "/a/led4",
+ 0,
+ OC_DISCOVERABLE));
+ url = OCGetResourceUri(handle4);
+ EXPECT_STREQ("/a/led4", url);
+
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle4, "core.brightled"));
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle4, "oc.mi.ll"));
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle4, "oc.mi.b"));
+
+ //EXPECT_EQ(OC_STACK_OK, OCHandleServerRequest(&res, uri, query, req, rsp));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
+TEST(StackBind, BindResourceTypeNameBad)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceTypeNameBad test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
uint8_t numResourceTypes;
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
EXPECT_EQ(1, numResourceTypes);
+ const char *resourceTypeName = OCGetResourceTypeName(handle, 0);
+ EXPECT_STREQ("core.led", resourceTypeName);
+
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceTypeToResource(handle, NULL));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceTypeAttribRepGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceTypeNameGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceTypeNameGood test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
uint8_t numResourceTypes;
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
EXPECT_EQ(1, numResourceTypes);
+ const char *resourceTypeName = OCGetResourceTypeName(handle, 0);
+ EXPECT_STREQ("core.led", resourceTypeName);
EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.brightled"));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
EXPECT_EQ(2, numResourceTypes);
+ resourceTypeName = OCGetResourceTypeName(handle, 1);
+ EXPECT_STREQ("core.brightled", resourceTypeName);
EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.reallybrightled"));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
EXPECT_EQ(3, numResourceTypes);
+ resourceTypeName = OCGetResourceTypeName(handle, 2);
+ EXPECT_STREQ("core.reallybrightled", resourceTypeName);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, ResourceTypeInterface) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceTypeAttribRepGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceTypeAttribRepGood test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
- uint8_t numResourceInterfaces;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceInterfaces(handle, &numResourceInterfaces));
- EXPECT_EQ(1, numResourceInterfaces);
- const char *resourceInterfaceName = OCGetResourceInterfaceName(handle, 0);
- EXPECT_STREQ("core.rw", resourceInterfaceName);
+ uint8_t numResourceTypes;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
+ EXPECT_EQ(1, numResourceTypes);
- // try getting resource interface names with an invalid index
- resourceInterfaceName = OCGetResourceInterfaceName(handle, 1);
- EXPECT_STREQ(NULL, resourceInterfaceName);
- // try getting resource interface names with an invalid index
- resourceInterfaceName = OCGetResourceInterfaceName(handle, 10);
- EXPECT_STREQ(NULL, resourceInterfaceName);
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.brightled"));
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
+ EXPECT_EQ(2, numResourceTypes);
+
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle, "core.reallybrightled"));
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceTypes(handle, &numResourceTypes));
+ EXPECT_EQ(3, numResourceTypes);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceInterfaceNameBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceInterfaceNameBad)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceInterfaceNameBad test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceInterfaceNameGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceInterfaceNameGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceInterfaceNameGood test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, ResourceTypeInterfaceMethods) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
-
- uint8_t numResourceInterfaces;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResourceInterfaces(handle, &numResourceInterfaces));
- EXPECT_EQ(1, numResourceInterfaces);
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-TEST(StackTest, BindResourceInterfaceMethodsBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceInterfaceMethodsBad)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceInterfaceMethodsBad test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindResourceInterfaceMethodsGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindResourceInterfaceMethodsGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindResourceInterfaceMethodsGood test");
+ InitStack(OC_SERVER);
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindContainedResourceBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindContainedResourceBad)
+{
+ OC_LOG(INFO, TAG, "Starting BindContainedResourceBad test");
+ InitStack(OC_SERVER);
OCResourceHandle containerHandle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&containerHandle,
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, BindContainedResourceGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackBind, BindContainedResourceGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindContainedResourceGood test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle containerHandle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&containerHandle,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(3, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle2;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(4, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle3;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(5, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle4;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle4,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(6, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle5;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle5,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(7, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCBindResource(containerHandle, handle0));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, GetResourceByIndex) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
+TEST(StackBind, BindEntityHandlerBad)
+{
+ OC_LOG(INFO, TAG, "Starting BindEntityHandlerBad test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceHandler(NULL, NULL));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
+TEST(StackBind, BindEntityHandlerGood)
+{
+ OC_LOG(INFO, TAG, "Starting BindEntityHandlerGood test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ OCEntityHandler myHandler = entityHandler;
+
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceHandler(handle, myHandler));
+
+ EXPECT_EQ(myHandler, OCGetResourceHandler(handle));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResourceAccess, GetResourceByIndex)
+{
+ OC_LOG(INFO, TAG, "Starting GetResourceByIndex test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t resourceIndex = InitResourceIndex();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle containerHandle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&containerHandle,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(3, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle2;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(4, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle3;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(5, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle4;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle4,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(6, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle5;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle5,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(7, numResources);
-
- EXPECT_EQ(containerHandle, OCGetResourceHandle(0));
- EXPECT_EQ(handle0, OCGetResourceHandle(1));
- EXPECT_EQ(handle1, OCGetResourceHandle(2));
- EXPECT_EQ(handle2, OCGetResourceHandle(3));
- EXPECT_EQ(handle3, OCGetResourceHandle(4));
- EXPECT_EQ(handle4, OCGetResourceHandle(5));
- EXPECT_EQ(handle5, OCGetResourceHandle(6));
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-TEST(StackTest, BindEntityHandlerBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
+ EXPECT_EQ(++numExpectedResources, numResources);
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
-
- EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceHandler(handle, NULL));
- EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceHandler(NULL, NULL));
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-
-OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest) {
- OC_LOG(INFO, TAG, "Entering entityHandler");
-
- return OC_EH_OK;
-}
-
-TEST(StackTest, BindEntityHandlerGood) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
-
- OCEntityHandler myHandler = entityHandler;
-
- EXPECT_EQ(OC_STACK_OK, OCBindResourceHandler(handle, myHandler));
-
- EXPECT_EQ(myHandler, OCGetResourceHandler(handle));
+ EXPECT_EQ(containerHandle, OCGetResourceHandle(resourceIndex));
+ EXPECT_EQ(handle0, OCGetResourceHandle(++resourceIndex));
+ EXPECT_EQ(handle1, OCGetResourceHandle(++resourceIndex));
+ EXPECT_EQ(handle2, OCGetResourceHandle(++resourceIndex));
+ EXPECT_EQ(handle3, OCGetResourceHandle(++resourceIndex));
+ EXPECT_EQ(handle4, OCGetResourceHandle(++resourceIndex));
+ EXPECT_EQ(handle5, OCGetResourceHandle(++resourceIndex));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, DeleteHeadResource) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResourceAccess, DeleteHeadResource)
+{
+ OC_LOG(INFO, TAG, "Starting DeleteHeadResource test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle0));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(--numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, DeleteHeadResource2) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResourceAccess, DeleteHeadResource2)
+{
+ OC_LOG(INFO, TAG, "Starting DeleteHeadResource2 test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t resourceIndex = InitResourceIndex();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle0));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(--numExpectedResources, numResources);
- EXPECT_EQ(handle1, OCGetResourceHandle(0));
+ EXPECT_EQ(handle1, OCGetResourceHandle(resourceIndex));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, DeleteLastResource) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResourceAccess, DeleteLastResource)
+{
+ OC_LOG(INFO, TAG, "Starting DeleteLastResource test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t resourceIndex = InitResourceIndex();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle1));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(--numExpectedResources, numResources);
- EXPECT_EQ(handle0, OCGetResourceHandle(0));
+ EXPECT_EQ(handle0, OCGetResourceHandle(resourceIndex));
OCResourceHandle handle2;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, DeleteMiddleResource) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
+TEST(StackResourceAccess, DeleteMiddleResource)
+{
+ OC_LOG(INFO, TAG, "Starting DeleteMiddleResource test");
+ InitStack(OC_SERVER);
uint8_t numResources = 0;
+ uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t resourceIndex = InitResourceIndex();
+
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
+ EXPECT_EQ(numExpectedResources, numResources);
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(1, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle1;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
OCResourceHandle handle2;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
0,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(3, numResources);
+ EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle1));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(2, numResources);
+ EXPECT_EQ(--numExpectedResources, numResources);
- EXPECT_EQ(handle0, OCGetResourceHandle(0));
- EXPECT_EQ(handle2, OCGetResourceHandle(1));
+ EXPECT_EQ(handle0, OCGetResourceHandle(resourceIndex));
+ EXPECT_EQ(handle2, OCGetResourceHandle(++resourceIndex));
// Make sure the resource elements are still correct
uint8_t numResourceInterfaces;
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-TEST(StackTest, GetResourceProperties) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
-
- EXPECT_EQ(OC_ACTIVE|OC_DISCOVERABLE|OC_OBSERVABLE, OCGetResourceProperties(handle));
- EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-TEST(StackTest, StackTestResourceDiscoverOneResourceBad) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a1/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
- const char *url = OCGetResourceUri(handle);
- EXPECT_STREQ("/a1/led", url);
-
- //EXPECT_EQ(OC_STACK_INVALID_URI, OCHandleServerRequest(&res, uri, query, req, rsp));
- EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
- uint8_t numResources = 0;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(0, numResources);
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-TEST(StackTest, StackTestResourceDiscoverOneResource) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
- "core.led",
- "core.rw",
- "/a/led",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
- const char *url = OCGetResourceUri(handle);
- EXPECT_STREQ("/a/led", url);
-
- //EXPECT_EQ(OC_STACK_OK, OCHandleServerRequest(&res, uri, query, req, rsp));
- EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-TEST(StackTest, StackTestResourceDiscoverManyResources) {
- uint8_t addr[20];
- uint16_t port = USE_RANDOM_PORT;
- uint8_t ifname[] = "eth0";
-
- /*Get Ip address on defined interface and initialize coap on it with random port number
- * this port number will be used as a source port in all coap communications*/
- OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr));
-
- OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port);
- EXPECT_EQ(OC_STACK_OK, OCInit((char *) addr, port, OC_SERVER));
-
- OCResourceHandle handle1;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle1,
- "core.led",
- "core.rw",
- "/a/led1",
- 0,
- OC_DISCOVERABLE));
- const char *url = OCGetResourceUri(handle1);
- EXPECT_STREQ("/a/led1", url);
-
- OCResourceHandle handle2;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
- "core.led",
- "core.rw",
- "/a/led2",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
- url = OCGetResourceUri(handle2);
- EXPECT_STREQ("/a/led2", url);
-
- EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle2, "core.brightled"));
- EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle2, "core.colorled"));
-
- OCResourceHandle handle3;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3,
- "core.led",
- "core.rw",
- "/a/led3",
- 0,
- OC_DISCOVERABLE|OC_OBSERVABLE));
- url = OCGetResourceUri(handle3);
- EXPECT_STREQ("/a/led3", url);
-
- EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle3, "oc.mi.ll"));
- EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle3, "oc.mi.b"));
-
- OCResourceHandle handle4;
- EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle4,
- "core.led",
- "core.rw",
- "/a/led4",
- 0,
- OC_DISCOVERABLE));
- url = OCGetResourceUri(handle4);
- EXPECT_STREQ("/a/led4", url);
-
- EXPECT_EQ(OC_STACK_OK, OCBindResourceTypeToResource(handle4, "core.brightled"));
- EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle4, "oc.mi.ll"));
- EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle4, "oc.mi.b"));
-
- //EXPECT_EQ(OC_STACK_OK, OCHandleServerRequest(&res, uri, query, req, rsp));
-
- EXPECT_EQ(OC_STACK_OK, OCStop());
-}
-
-
#if 0
TEST(StackTest, StackTestResourceDiscoverIfFilteringBad) {
uint8_t addr[20];