Donald Meyers / Mbed OS evan
Committer:
djmeyers
Date:
Sat Mar 18 22:37:16 2017 +0000
Revision:
0:06ee5f8a484a
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djmeyers 0:06ee5f8a484a 1 /*
djmeyers 0:06ee5f8a484a 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
djmeyers 0:06ee5f8a484a 3 * SPDX-License-Identifier: Apache-2.0
djmeyers 0:06ee5f8a484a 4 * Licensed under the Apache License, Version 2.0 (the License); you may
djmeyers 0:06ee5f8a484a 5 * not use this file except in compliance with the License.
djmeyers 0:06ee5f8a484a 6 * You may obtain a copy of the License at
djmeyers 0:06ee5f8a484a 7 *
djmeyers 0:06ee5f8a484a 8 * http://www.apache.org/licenses/LICENSE-2.0
djmeyers 0:06ee5f8a484a 9 *
djmeyers 0:06ee5f8a484a 10 * Unless required by applicable law or agreed to in writing, software
djmeyers 0:06ee5f8a484a 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
djmeyers 0:06ee5f8a484a 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
djmeyers 0:06ee5f8a484a 13 * See the License for the specific language governing permissions and
djmeyers 0:06ee5f8a484a 14 * limitations under the License.
djmeyers 0:06ee5f8a484a 15 */
djmeyers 0:06ee5f8a484a 16 #include "CppUTest/TestHarness.h"
djmeyers 0:06ee5f8a484a 17 #include "test_m2mnsdlinterface.h"
djmeyers 0:06ee5f8a484a 18 #include "common_stub.h"
djmeyers 0:06ee5f8a484a 19 #include "m2msecurity_stub.h"
djmeyers 0:06ee5f8a484a 20 #include "m2mnsdlobserver.h"
djmeyers 0:06ee5f8a484a 21 #include "m2mobject_stub.h"
djmeyers 0:06ee5f8a484a 22 #include "m2mobjectinstance_stub.h"
djmeyers 0:06ee5f8a484a 23 #include "m2mresource_stub.h"
djmeyers 0:06ee5f8a484a 24 #include "m2mresourceinstance_stub.h"
djmeyers 0:06ee5f8a484a 25 #include "m2mresource.h"
djmeyers 0:06ee5f8a484a 26 #include "m2mbase_stub.h"
djmeyers 0:06ee5f8a484a 27 #include "m2mserver.h"
djmeyers 0:06ee5f8a484a 28 #include "m2msecurity.h"
djmeyers 0:06ee5f8a484a 29 #include "m2mtlvdeserializer_stub.h"
djmeyers 0:06ee5f8a484a 30 class TestObserver : public M2MNsdlObserver {
djmeyers 0:06ee5f8a484a 31
djmeyers 0:06ee5f8a484a 32 public:
djmeyers 0:06ee5f8a484a 33 TestObserver(){}
djmeyers 0:06ee5f8a484a 34 virtual ~TestObserver(){}
djmeyers 0:06ee5f8a484a 35 void coap_message_ready(uint8_t *,
djmeyers 0:06ee5f8a484a 36 uint16_t,
djmeyers 0:06ee5f8a484a 37 sn_nsdl_addr_s *){
djmeyers 0:06ee5f8a484a 38 message_ready = true;
djmeyers 0:06ee5f8a484a 39 }
djmeyers 0:06ee5f8a484a 40
djmeyers 0:06ee5f8a484a 41 void client_registered(M2MServer *){
djmeyers 0:06ee5f8a484a 42 registered = true;
djmeyers 0:06ee5f8a484a 43 }
djmeyers 0:06ee5f8a484a 44
djmeyers 0:06ee5f8a484a 45 void registration_updated(const M2MServer &){
djmeyers 0:06ee5f8a484a 46 register_updated = true;
djmeyers 0:06ee5f8a484a 47 }
djmeyers 0:06ee5f8a484a 48
djmeyers 0:06ee5f8a484a 49 void registration_error(uint8_t, bool retry = false){
djmeyers 0:06ee5f8a484a 50 register_error = true;
djmeyers 0:06ee5f8a484a 51 }
djmeyers 0:06ee5f8a484a 52
djmeyers 0:06ee5f8a484a 53 void client_unregistered(){
djmeyers 0:06ee5f8a484a 54 unregistered = true;
djmeyers 0:06ee5f8a484a 55 }
djmeyers 0:06ee5f8a484a 56
djmeyers 0:06ee5f8a484a 57 void bootstrap_done(M2MSecurity *sec){
djmeyers 0:06ee5f8a484a 58 if(sec) {
djmeyers 0:06ee5f8a484a 59 boot_done = true;
djmeyers 0:06ee5f8a484a 60 delete sec;
djmeyers 0:06ee5f8a484a 61 sec = NULL;
djmeyers 0:06ee5f8a484a 62 }
djmeyers 0:06ee5f8a484a 63 }
djmeyers 0:06ee5f8a484a 64
djmeyers 0:06ee5f8a484a 65 void bootstrap_wait(M2MSecurity *sec){
djmeyers 0:06ee5f8a484a 66 if(sec) {
djmeyers 0:06ee5f8a484a 67 boot_wait = true;
djmeyers 0:06ee5f8a484a 68 delete sec;
djmeyers 0:06ee5f8a484a 69 sec = NULL;
djmeyers 0:06ee5f8a484a 70 }
djmeyers 0:06ee5f8a484a 71 }
djmeyers 0:06ee5f8a484a 72
djmeyers 0:06ee5f8a484a 73 void bootstrap_error(){
djmeyers 0:06ee5f8a484a 74 boot_error = true;
djmeyers 0:06ee5f8a484a 75 }
djmeyers 0:06ee5f8a484a 76
djmeyers 0:06ee5f8a484a 77 void coap_data_processed(){
djmeyers 0:06ee5f8a484a 78 data_processed = true;
djmeyers 0:06ee5f8a484a 79 }
djmeyers 0:06ee5f8a484a 80
djmeyers 0:06ee5f8a484a 81 void value_updated(M2MBase *){
djmeyers 0:06ee5f8a484a 82 value_update = true;
djmeyers 0:06ee5f8a484a 83 }
djmeyers 0:06ee5f8a484a 84
djmeyers 0:06ee5f8a484a 85 bool register_error;
djmeyers 0:06ee5f8a484a 86 bool boot_error;
djmeyers 0:06ee5f8a484a 87 bool boot_wait;
djmeyers 0:06ee5f8a484a 88 bool boot_done;
djmeyers 0:06ee5f8a484a 89 bool registered;
djmeyers 0:06ee5f8a484a 90 bool register_updated;
djmeyers 0:06ee5f8a484a 91 bool data_processed;
djmeyers 0:06ee5f8a484a 92 bool unregistered;
djmeyers 0:06ee5f8a484a 93 bool message_ready;
djmeyers 0:06ee5f8a484a 94 bool value_update;
djmeyers 0:06ee5f8a484a 95 };
djmeyers 0:06ee5f8a484a 96
djmeyers 0:06ee5f8a484a 97 struct nsdl_s {
djmeyers 0:06ee5f8a484a 98 uint16_t update_register_msg_id;
djmeyers 0:06ee5f8a484a 99 uint16_t register_msg_len;
djmeyers 0:06ee5f8a484a 100 uint16_t update_register_msg_len;
djmeyers 0:06ee5f8a484a 101
djmeyers 0:06ee5f8a484a 102 uint16_t register_msg_id;
djmeyers 0:06ee5f8a484a 103 uint16_t unregister_msg_id;
djmeyers 0:06ee5f8a484a 104
djmeyers 0:06ee5f8a484a 105 uint16_t bootstrap_msg_id;
djmeyers 0:06ee5f8a484a 106 uint16_t oma_bs_port; /* Bootstrap port */
djmeyers 0:06ee5f8a484a 107 uint8_t oma_bs_address_len; /* Bootstrap address length */
djmeyers 0:06ee5f8a484a 108 unsigned int sn_nsdl_endpoint_registered:1;
djmeyers 0:06ee5f8a484a 109 bool handle_bootstrap_msg:1;
djmeyers 0:06ee5f8a484a 110
djmeyers 0:06ee5f8a484a 111 struct grs_s *grs;
djmeyers 0:06ee5f8a484a 112 uint8_t *oma_bs_address_ptr; /* Bootstrap address pointer. If null, no bootstrap in use */
djmeyers 0:06ee5f8a484a 113 sn_nsdl_ep_parameters_s *ep_information_ptr; // Endpoint parameters, Name, Domain etc..
djmeyers 0:06ee5f8a484a 114 sn_nsdl_oma_server_info_t *nsp_address_ptr; // NSP server address information
djmeyers 0:06ee5f8a484a 115
djmeyers 0:06ee5f8a484a 116 void (*sn_nsdl_oma_bs_done_cb)(sn_nsdl_oma_server_info_t *server_info_ptr); /* Callback to inform application when bootstrap is done */
djmeyers 0:06ee5f8a484a 117 void *(*sn_nsdl_alloc)(uint16_t);
djmeyers 0:06ee5f8a484a 118 void (*sn_nsdl_free)(void *);
djmeyers 0:06ee5f8a484a 119 uint8_t (*sn_nsdl_tx_callback)(struct nsdl_s *, sn_nsdl_capab_e , uint8_t *, uint16_t, sn_nsdl_addr_s *);
djmeyers 0:06ee5f8a484a 120 uint8_t (*sn_nsdl_rx_callback)(struct nsdl_s *, sn_coap_hdr_s *, sn_nsdl_addr_s *);
djmeyers 0:06ee5f8a484a 121 void (*sn_nsdl_oma_bs_done_cb_handle)(sn_nsdl_oma_server_info_t *server_info_ptr,
djmeyers 0:06ee5f8a484a 122 struct nsdl_s *handle); /* Callback to inform application when bootstrap is done with nsdl handle */
djmeyers 0:06ee5f8a484a 123 };
djmeyers 0:06ee5f8a484a 124
djmeyers 0:06ee5f8a484a 125 Test_M2MNsdlInterface::Test_M2MNsdlInterface()
djmeyers 0:06ee5f8a484a 126 {
djmeyers 0:06ee5f8a484a 127 observer = new TestObserver();
djmeyers 0:06ee5f8a484a 128 nsdl = new M2MNsdlInterface(*observer);
djmeyers 0:06ee5f8a484a 129 //nsdl->_server = new M2MServer();
djmeyers 0:06ee5f8a484a 130 }
djmeyers 0:06ee5f8a484a 131
djmeyers 0:06ee5f8a484a 132 Test_M2MNsdlInterface:: ~Test_M2MNsdlInterface()
djmeyers 0:06ee5f8a484a 133 {
djmeyers 0:06ee5f8a484a 134 delete nsdl;
djmeyers 0:06ee5f8a484a 135 nsdl = NULL;
djmeyers 0:06ee5f8a484a 136 delete observer;
djmeyers 0:06ee5f8a484a 137 observer = NULL;
djmeyers 0:06ee5f8a484a 138 }
djmeyers 0:06ee5f8a484a 139
djmeyers 0:06ee5f8a484a 140 void Test_M2MNsdlInterface::test_create_endpoint()
djmeyers 0:06ee5f8a484a 141 {
djmeyers 0:06ee5f8a484a 142 u_int8_t value[] = {"120"};
djmeyers 0:06ee5f8a484a 143 if( nsdl->_endpoint == NULL){
djmeyers 0:06ee5f8a484a 144 nsdl->_endpoint = (sn_nsdl_ep_parameters_s*)nsdl->memory_alloc(sizeof(sn_nsdl_ep_parameters_s));
djmeyers 0:06ee5f8a484a 145 }
djmeyers 0:06ee5f8a484a 146
djmeyers 0:06ee5f8a484a 147 nsdl->create_endpoint("name", "type",120,"domain",100,"context");
djmeyers 0:06ee5f8a484a 148 CHECK(nsdl->_endpoint->lifetime_len == 3);
djmeyers 0:06ee5f8a484a 149 CHECK(*nsdl->_endpoint->lifetime_ptr == *value);
djmeyers 0:06ee5f8a484a 150 }
djmeyers 0:06ee5f8a484a 151
djmeyers 0:06ee5f8a484a 152 void Test_M2MNsdlInterface::test_delete_endpoint()
djmeyers 0:06ee5f8a484a 153 {
djmeyers 0:06ee5f8a484a 154 if( nsdl->_endpoint == NULL){
djmeyers 0:06ee5f8a484a 155 nsdl->_endpoint = (sn_nsdl_ep_parameters_s*)nsdl->memory_alloc(sizeof(sn_nsdl_ep_parameters_s));
djmeyers 0:06ee5f8a484a 156 }
djmeyers 0:06ee5f8a484a 157 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 158
djmeyers 0:06ee5f8a484a 159 nsdl->delete_endpoint();
djmeyers 0:06ee5f8a484a 160 CHECK(nsdl->_endpoint == NULL);
djmeyers 0:06ee5f8a484a 161 }
djmeyers 0:06ee5f8a484a 162
djmeyers 0:06ee5f8a484a 163 void Test_M2MNsdlInterface::test_create_nsdl_list_structure()
djmeyers 0:06ee5f8a484a 164 {
djmeyers 0:06ee5f8a484a 165 String *name = new String("name");
djmeyers 0:06ee5f8a484a 166 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 167 m2mbase_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 168 M2MObject *object = new M2MObject(*name, (char*)name->c_str());
djmeyers 0:06ee5f8a484a 169 M2MObjectInstance* instance = new M2MObjectInstance(*object,*name, "", "name/0");
djmeyers 0:06ee5f8a484a 170
djmeyers 0:06ee5f8a484a 171 M2MResource* create_resource = new M2MResource(*instance,
djmeyers 0:06ee5f8a484a 172 *name,
djmeyers 0:06ee5f8a484a 173 *name,
djmeyers 0:06ee5f8a484a 174 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 175 false,
djmeyers 0:06ee5f8a484a 176 "name");
djmeyers 0:06ee5f8a484a 177
djmeyers 0:06ee5f8a484a 178 M2MResourceInstance* res_instance = new M2MResourceInstance(*create_resource, *name, *name,
djmeyers 0:06ee5f8a484a 179 M2MResourceInstance::INTEGER, 0, (char*)name->c_str(), false);
djmeyers 0:06ee5f8a484a 180
djmeyers 0:06ee5f8a484a 181 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 182 m2mobject_stub::instance_list.push_back(instance);
djmeyers 0:06ee5f8a484a 183
djmeyers 0:06ee5f8a484a 184 m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 185 m2mobjectinstance_stub::resource_list.push_back(create_resource);
djmeyers 0:06ee5f8a484a 186
djmeyers 0:06ee5f8a484a 187 M2MObjectList list;
djmeyers 0:06ee5f8a484a 188 list.push_back(object);
djmeyers 0:06ee5f8a484a 189
djmeyers 0:06ee5f8a484a 190 m2mbase_stub::string_value = name->c_str();
djmeyers 0:06ee5f8a484a 191 m2mbase_stub::mode_value = M2MBase::Static;
djmeyers 0:06ee5f8a484a 192
djmeyers 0:06ee5f8a484a 193
djmeyers 0:06ee5f8a484a 194 CHECK(nsdl->create_nsdl_list_structure(list)== true);
djmeyers 0:06ee5f8a484a 195
djmeyers 0:06ee5f8a484a 196 m2mresource_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 197 m2mbase_stub::mode_value = M2MBase::Dynamic;
djmeyers 0:06ee5f8a484a 198
djmeyers 0:06ee5f8a484a 199 m2mresource_stub::list.push_back(res_instance);
djmeyers 0:06ee5f8a484a 200 m2mresourceinstance_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 201
djmeyers 0:06ee5f8a484a 202 CHECK(nsdl->create_nsdl_list_structure(list)== true);
djmeyers 0:06ee5f8a484a 203
djmeyers 0:06ee5f8a484a 204 m2mbase_stub::mode_value = M2MBase::Directory;
djmeyers 0:06ee5f8a484a 205 CHECK(nsdl->create_nsdl_list_structure(list)== true);
djmeyers 0:06ee5f8a484a 206
djmeyers 0:06ee5f8a484a 207 list.clear();
djmeyers 0:06ee5f8a484a 208 delete object;
djmeyers 0:06ee5f8a484a 209 delete name;
djmeyers 0:06ee5f8a484a 210 name = NULL;
djmeyers 0:06ee5f8a484a 211 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 212 delete instance;
djmeyers 0:06ee5f8a484a 213 instance = NULL;
djmeyers 0:06ee5f8a484a 214 m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 215 delete create_resource;
djmeyers 0:06ee5f8a484a 216 create_resource = NULL;
djmeyers 0:06ee5f8a484a 217
djmeyers 0:06ee5f8a484a 218 m2mresource_stub::list.clear();
djmeyers 0:06ee5f8a484a 219 delete res_instance;
djmeyers 0:06ee5f8a484a 220 res_instance = NULL;
djmeyers 0:06ee5f8a484a 221 }
djmeyers 0:06ee5f8a484a 222
djmeyers 0:06ee5f8a484a 223 void Test_M2MNsdlInterface::test_delete_nsdl_resource()
djmeyers 0:06ee5f8a484a 224 {
djmeyers 0:06ee5f8a484a 225 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 226 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 227
djmeyers 0:06ee5f8a484a 228 CHECK(nsdl->remove_nsdl_resource(object) == false);
djmeyers 0:06ee5f8a484a 229
djmeyers 0:06ee5f8a484a 230 common_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 231
djmeyers 0:06ee5f8a484a 232 CHECK(nsdl->remove_nsdl_resource(object) == true);
djmeyers 0:06ee5f8a484a 233 delete object;
djmeyers 0:06ee5f8a484a 234 }
djmeyers 0:06ee5f8a484a 235
djmeyers 0:06ee5f8a484a 236 void Test_M2MNsdlInterface::test_create_bootstrap_resource()
djmeyers 0:06ee5f8a484a 237 {
djmeyers 0:06ee5f8a484a 238 common_stub::uint_value = 11;
djmeyers 0:06ee5f8a484a 239 CHECK(nsdl->create_bootstrap_resource(NULL, "") == true);
djmeyers 0:06ee5f8a484a 240
djmeyers 0:06ee5f8a484a 241 common_stub::uint_value = 0;
djmeyers 0:06ee5f8a484a 242 CHECK(nsdl->create_bootstrap_resource(NULL, "") == false);
djmeyers 0:06ee5f8a484a 243 }
djmeyers 0:06ee5f8a484a 244
djmeyers 0:06ee5f8a484a 245 void Test_M2MNsdlInterface::test_send_register_message()
djmeyers 0:06ee5f8a484a 246 {
djmeyers 0:06ee5f8a484a 247 common_stub::uint_value = 12;
djmeyers 0:06ee5f8a484a 248 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 249 CHECK(nsdl->send_register_message(NULL,4,100,SN_NSDL_ADDRESS_TYPE_IPV6) == true);
djmeyers 0:06ee5f8a484a 250
djmeyers 0:06ee5f8a484a 251 common_stub::uint_value = 0;
djmeyers 0:06ee5f8a484a 252 CHECK(nsdl->send_register_message(NULL,4,100,SN_NSDL_ADDRESS_TYPE_IPV6) == false);
djmeyers 0:06ee5f8a484a 253 }
djmeyers 0:06ee5f8a484a 254
djmeyers 0:06ee5f8a484a 255 void Test_M2MNsdlInterface::test_send_update_registration()
djmeyers 0:06ee5f8a484a 256 {
djmeyers 0:06ee5f8a484a 257 common_stub::uint_value = 23;
djmeyers 0:06ee5f8a484a 258 nsdl->_nsdl_handle = (nsdl_s*)malloc(sizeof(1));
djmeyers 0:06ee5f8a484a 259 CHECK(nsdl->send_update_registration(120) == true);
djmeyers 0:06ee5f8a484a 260
djmeyers 0:06ee5f8a484a 261 // Update lifetime value
djmeyers 0:06ee5f8a484a 262 common_stub::uint_value = 1;
djmeyers 0:06ee5f8a484a 263 CHECK(nsdl->send_update_registration(100) == true);
djmeyers 0:06ee5f8a484a 264
djmeyers 0:06ee5f8a484a 265 // Lifetime value is 0, don't change the existing lifetime value
djmeyers 0:06ee5f8a484a 266 common_stub::uint_value = 1;
djmeyers 0:06ee5f8a484a 267 CHECK(nsdl->send_update_registration(0) == true);
djmeyers 0:06ee5f8a484a 268
djmeyers 0:06ee5f8a484a 269 free(nsdl->_nsdl_handle);
djmeyers 0:06ee5f8a484a 270 }
djmeyers 0:06ee5f8a484a 271
djmeyers 0:06ee5f8a484a 272 void Test_M2MNsdlInterface::test_send_unregister_message()
djmeyers 0:06ee5f8a484a 273 {
djmeyers 0:06ee5f8a484a 274 common_stub::uint_value = 22;
djmeyers 0:06ee5f8a484a 275 CHECK(nsdl->send_unregister_message() == true);
djmeyers 0:06ee5f8a484a 276
djmeyers 0:06ee5f8a484a 277 // Unreg already in progress
djmeyers 0:06ee5f8a484a 278 common_stub::uint_value = 0;
djmeyers 0:06ee5f8a484a 279 CHECK(nsdl->send_unregister_message() == true);
djmeyers 0:06ee5f8a484a 280 }
djmeyers 0:06ee5f8a484a 281
djmeyers 0:06ee5f8a484a 282 void Test_M2MNsdlInterface::test_memory_alloc()
djmeyers 0:06ee5f8a484a 283 {
djmeyers 0:06ee5f8a484a 284 CHECK(nsdl->memory_alloc(0) == 0);
djmeyers 0:06ee5f8a484a 285 uint8_t *ptr = 0;
djmeyers 0:06ee5f8a484a 286 ptr = (uint8_t*)nsdl->memory_alloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 287 CHECK(ptr != NULL);
djmeyers 0:06ee5f8a484a 288 nsdl->memory_free(ptr);
djmeyers 0:06ee5f8a484a 289 }
djmeyers 0:06ee5f8a484a 290
djmeyers 0:06ee5f8a484a 291 void Test_M2MNsdlInterface::test_memory_free()
djmeyers 0:06ee5f8a484a 292 {
djmeyers 0:06ee5f8a484a 293 uint8_t *ptr = (uint8_t*)nsdl->memory_alloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 294 nsdl->memory_free((void*)ptr);
djmeyers 0:06ee5f8a484a 295 //memory leak test will fail, if there is a leak, so no need for CHECK
djmeyers 0:06ee5f8a484a 296 }
djmeyers 0:06ee5f8a484a 297
djmeyers 0:06ee5f8a484a 298 void Test_M2MNsdlInterface::test_send_to_server_callback()
djmeyers 0:06ee5f8a484a 299 {
djmeyers 0:06ee5f8a484a 300 uint8_t *data_ptr = (uint8_t*)malloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 301 uint16_t data_len = sizeof(uint8_t);
djmeyers 0:06ee5f8a484a 302 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 303
djmeyers 0:06ee5f8a484a 304 nsdl->send_to_server_callback(NULL, SN_NSDL_PROTOCOL_COAP, data_ptr,data_len,address);
djmeyers 0:06ee5f8a484a 305 CHECK(observer->message_ready == true);
djmeyers 0:06ee5f8a484a 306
djmeyers 0:06ee5f8a484a 307 free(data_ptr);
djmeyers 0:06ee5f8a484a 308 free(address);
djmeyers 0:06ee5f8a484a 309 }
djmeyers 0:06ee5f8a484a 310
djmeyers 0:06ee5f8a484a 311 void Test_M2MNsdlInterface::test_received_from_server_callback()
djmeyers 0:06ee5f8a484a 312 {
djmeyers 0:06ee5f8a484a 313 nsdl_s* handle = (nsdl_s*)malloc(sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 314 memset(handle,0,sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 315
djmeyers 0:06ee5f8a484a 316 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 317 memset(coap_header, 0, sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 318 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CREATED;
djmeyers 0:06ee5f8a484a 319
djmeyers 0:06ee5f8a484a 320
djmeyers 0:06ee5f8a484a 321 coap_header->options_list_ptr = (sn_coap_options_list_s *)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 322 memset(coap_header->options_list_ptr, 0, sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 323
djmeyers 0:06ee5f8a484a 324 coap_header->options_list_ptr->max_age = 2;
djmeyers 0:06ee5f8a484a 325
djmeyers 0:06ee5f8a484a 326 coap_header->options_list_ptr->location_path_len = 2;
djmeyers 0:06ee5f8a484a 327 coap_header->options_list_ptr->location_path_ptr = (uint8_t *)malloc(sizeof(coap_header->options_list_ptr->location_path_len));
djmeyers 0:06ee5f8a484a 328 memset(coap_header->options_list_ptr->location_path_ptr, 0, sizeof(coap_header->options_list_ptr->location_path_len));
djmeyers 0:06ee5f8a484a 329
djmeyers 0:06ee5f8a484a 330 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 331 observer->registered = false;
djmeyers 0:06ee5f8a484a 332 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 333 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 334 CHECK(observer->registered == true);
djmeyers 0:06ee5f8a484a 335
djmeyers 0:06ee5f8a484a 336 free(nsdl->_endpoint->lifetime_ptr);
djmeyers 0:06ee5f8a484a 337 nsdl->_endpoint->lifetime_ptr = NULL;
djmeyers 0:06ee5f8a484a 338
djmeyers 0:06ee5f8a484a 339 free(nsdl->_endpoint->location_ptr);
djmeyers 0:06ee5f8a484a 340 nsdl->_endpoint->location_ptr = NULL;
djmeyers 0:06ee5f8a484a 341
djmeyers 0:06ee5f8a484a 342 uint8_t life1[] = {"120"};
djmeyers 0:06ee5f8a484a 343 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(life1));
djmeyers 0:06ee5f8a484a 344 memcpy(nsdl->_endpoint->lifetime_ptr,life1,sizeof(life1));
djmeyers 0:06ee5f8a484a 345 nsdl->_endpoint->lifetime_len = (uint8_t)sizeof(life1);
djmeyers 0:06ee5f8a484a 346
djmeyers 0:06ee5f8a484a 347 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 348 observer->registered = false;
djmeyers 0:06ee5f8a484a 349 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 350 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 351 CHECK(observer->registered == true);
djmeyers 0:06ee5f8a484a 352
djmeyers 0:06ee5f8a484a 353 free(coap_header->options_list_ptr->location_path_ptr);
djmeyers 0:06ee5f8a484a 354 coap_header->options_list_ptr->location_path_ptr = NULL;
djmeyers 0:06ee5f8a484a 355
djmeyers 0:06ee5f8a484a 356 free(coap_header->options_list_ptr);
djmeyers 0:06ee5f8a484a 357 coap_header->options_list_ptr = NULL;
djmeyers 0:06ee5f8a484a 358
djmeyers 0:06ee5f8a484a 359 free(nsdl->_endpoint->lifetime_ptr);
djmeyers 0:06ee5f8a484a 360 nsdl->_endpoint->lifetime_ptr = NULL;
djmeyers 0:06ee5f8a484a 361
djmeyers 0:06ee5f8a484a 362 uint8_t life[] = {"120"};
djmeyers 0:06ee5f8a484a 363 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(life));
djmeyers 0:06ee5f8a484a 364 memcpy(nsdl->_endpoint->lifetime_ptr,life,sizeof(life));
djmeyers 0:06ee5f8a484a 365 nsdl->_endpoint->lifetime_len = (uint8_t)sizeof(life);
djmeyers 0:06ee5f8a484a 366
djmeyers 0:06ee5f8a484a 367 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 368 observer->registered = false;
djmeyers 0:06ee5f8a484a 369
djmeyers 0:06ee5f8a484a 370 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 371 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 372 CHECK(observer->registered == true);
djmeyers 0:06ee5f8a484a 373 free(nsdl->_endpoint->lifetime_ptr);
djmeyers 0:06ee5f8a484a 374 nsdl->_endpoint->lifetime_ptr = NULL;
djmeyers 0:06ee5f8a484a 375
djmeyers 0:06ee5f8a484a 376 uint8_t big_life[] = {"4000"};
djmeyers 0:06ee5f8a484a 377 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(big_life));
djmeyers 0:06ee5f8a484a 378 memcpy(nsdl->_endpoint->lifetime_ptr,big_life,sizeof(big_life));
djmeyers 0:06ee5f8a484a 379 nsdl->_endpoint->lifetime_len = (uint8_t)sizeof(big_life);
djmeyers 0:06ee5f8a484a 380 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 381 observer->registered = false;
djmeyers 0:06ee5f8a484a 382 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 383 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 384 CHECK(observer->registered == true);
djmeyers 0:06ee5f8a484a 385
djmeyers 0:06ee5f8a484a 386 free(nsdl->_endpoint->lifetime_ptr);
djmeyers 0:06ee5f8a484a 387 nsdl->_endpoint->lifetime_ptr = NULL;
djmeyers 0:06ee5f8a484a 388
djmeyers 0:06ee5f8a484a 389 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 390 observer->registered = false;
djmeyers 0:06ee5f8a484a 391
djmeyers 0:06ee5f8a484a 392 uint8_t less_life[] = {"30"};
djmeyers 0:06ee5f8a484a 393 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(less_life));
djmeyers 0:06ee5f8a484a 394 memcpy(nsdl->_endpoint->lifetime_ptr,less_life,sizeof(less_life));
djmeyers 0:06ee5f8a484a 395 nsdl->_endpoint->lifetime_len = (uint8_t)sizeof(less_life);
djmeyers 0:06ee5f8a484a 396
djmeyers 0:06ee5f8a484a 397 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 398 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 399 CHECK(observer->registered == true);
djmeyers 0:06ee5f8a484a 400
djmeyers 0:06ee5f8a484a 401 observer->data_processed = false;
djmeyers 0:06ee5f8a484a 402 observer->registered = false;
djmeyers 0:06ee5f8a484a 403 observer->unregistered = false;
djmeyers 0:06ee5f8a484a 404 observer->register_error = false;
djmeyers 0:06ee5f8a484a 405
djmeyers 0:06ee5f8a484a 406 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 407 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 408 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 409 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 410
djmeyers 0:06ee5f8a484a 411 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_OPTION;
djmeyers 0:06ee5f8a484a 412 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 413 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 414 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 415
djmeyers 0:06ee5f8a484a 416 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_REQUEST_ENTITY_INCOMPLETE;
djmeyers 0:06ee5f8a484a 417 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 418 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 419 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 420
djmeyers 0:06ee5f8a484a 421 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_PRECONDITION_FAILED;
djmeyers 0:06ee5f8a484a 422 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 423 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 424 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 425
djmeyers 0:06ee5f8a484a 426 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_REQUEST_ENTITY_TOO_LARGE;
djmeyers 0:06ee5f8a484a 427 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 428 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 429 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 430
djmeyers 0:06ee5f8a484a 431 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_UNSUPPORTED_CONTENT_FORMAT;
djmeyers 0:06ee5f8a484a 432 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 433 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 434 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 435
djmeyers 0:06ee5f8a484a 436 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_UNAUTHORIZED;
djmeyers 0:06ee5f8a484a 437 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 438 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 439 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 440
djmeyers 0:06ee5f8a484a 441 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_FORBIDDEN;
djmeyers 0:06ee5f8a484a 442 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 443 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 444 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 445
djmeyers 0:06ee5f8a484a 446 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_NOT_FOUND;
djmeyers 0:06ee5f8a484a 447 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 448 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 449 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 450
djmeyers 0:06ee5f8a484a 451 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_METHOD_NOT_ALLOWED;
djmeyers 0:06ee5f8a484a 452 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 453 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 454 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 455
djmeyers 0:06ee5f8a484a 456 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_GATEWAY;
djmeyers 0:06ee5f8a484a 457 coap_header->coap_status = COAP_STATUS_BUILDER_MESSAGE_SENDING_FAILED;
djmeyers 0:06ee5f8a484a 458 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 459 CHECK(observer->data_processed == true);
djmeyers 0:06ee5f8a484a 460 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 461
djmeyers 0:06ee5f8a484a 462
djmeyers 0:06ee5f8a484a 463 coap_header->msg_id = 8;
djmeyers 0:06ee5f8a484a 464 handle->unregister_msg_id = 8;
djmeyers 0:06ee5f8a484a 465
djmeyers 0:06ee5f8a484a 466 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_DELETED;
djmeyers 0:06ee5f8a484a 467 observer->register_error = false;
djmeyers 0:06ee5f8a484a 468 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 469 CHECK(observer->unregistered == true);
djmeyers 0:06ee5f8a484a 470
djmeyers 0:06ee5f8a484a 471 observer->register_error = false;
djmeyers 0:06ee5f8a484a 472 handle->unregister_msg_id = 8;
djmeyers 0:06ee5f8a484a 473 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CREATED;
djmeyers 0:06ee5f8a484a 474
djmeyers 0:06ee5f8a484a 475 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 476 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 477
djmeyers 0:06ee5f8a484a 478 observer->register_error = false;
djmeyers 0:06ee5f8a484a 479 handle->unregister_msg_id = 8;
djmeyers 0:06ee5f8a484a 480 coap_header->coap_status = COAP_STATUS_BUILDER_MESSAGE_SENDING_FAILED;
djmeyers 0:06ee5f8a484a 481 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 482 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 483 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 484
djmeyers 0:06ee5f8a484a 485 observer->register_error = false;
djmeyers 0:06ee5f8a484a 486 handle->unregister_msg_id = 8;
djmeyers 0:06ee5f8a484a 487 coap_header->coap_status = COAP_STATUS_PARSER_ERROR_IN_HEADER;
djmeyers 0:06ee5f8a484a 488 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_METHOD_NOT_ALLOWED;
djmeyers 0:06ee5f8a484a 489 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 490 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 491
djmeyers 0:06ee5f8a484a 492 observer->register_error = false;
djmeyers 0:06ee5f8a484a 493 handle->unregister_msg_id = 8;
djmeyers 0:06ee5f8a484a 494 coap_header->coap_status = COAP_STATUS_PARSER_ERROR_IN_HEADER;
djmeyers 0:06ee5f8a484a 495 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_GATEWAY_TIMEOUT;
djmeyers 0:06ee5f8a484a 496 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 497 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 498
djmeyers 0:06ee5f8a484a 499 // Receive initial bs message with error
djmeyers 0:06ee5f8a484a 500 handle->unregister_msg_id = 0;
djmeyers 0:06ee5f8a484a 501 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 502 nsdl->_bootstrap_id = 8;
djmeyers 0:06ee5f8a484a 503 handle->bootstrap_msg_id = 8;
djmeyers 0:06ee5f8a484a 504 coap_header->coap_status = COAP_STATUS_BUILDER_MESSAGE_SENDING_FAILED;
djmeyers 0:06ee5f8a484a 505 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 506 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 507
djmeyers 0:06ee5f8a484a 508 //_update_id == msg_id
djmeyers 0:06ee5f8a484a 509 handle->update_register_msg_id = 10;
djmeyers 0:06ee5f8a484a 510 coap_header->msg_id = 10;
djmeyers 0:06ee5f8a484a 511 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CHANGED;
djmeyers 0:06ee5f8a484a 512 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 513 CHECK(observer->register_updated == true);
djmeyers 0:06ee5f8a484a 514
djmeyers 0:06ee5f8a484a 515 coap_header->msg_id = 10;
djmeyers 0:06ee5f8a484a 516 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_FORBIDDEN;
djmeyers 0:06ee5f8a484a 517 coap_header->coap_status = COAP_STATUS_OK;
djmeyers 0:06ee5f8a484a 518 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 519 CHECK(observer->register_error == true);
djmeyers 0:06ee5f8a484a 520
djmeyers 0:06ee5f8a484a 521 coap_header->msg_id = 11;
djmeyers 0:06ee5f8a484a 522 CHECK( 0== nsdl->received_from_server_callback(handle,coap_header,NULL) );
djmeyers 0:06ee5f8a484a 523
djmeyers 0:06ee5f8a484a 524 handle->update_register_msg_id = 0;
djmeyers 0:06ee5f8a484a 525 handle->register_msg_id = 0;
djmeyers 0:06ee5f8a484a 526 handle->unregister_msg_id = 0;
djmeyers 0:06ee5f8a484a 527 coap_header->msg_id = 10;
djmeyers 0:06ee5f8a484a 528 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 529
djmeyers 0:06ee5f8a484a 530 uint8_t object[] = {"name"};
djmeyers 0:06ee5f8a484a 531
djmeyers 0:06ee5f8a484a 532 coap_header->uri_path_ptr = object;
djmeyers 0:06ee5f8a484a 533 coap_header->uri_path_len = sizeof(object);
djmeyers 0:06ee5f8a484a 534
djmeyers 0:06ee5f8a484a 535 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 536
djmeyers 0:06ee5f8a484a 537 //Test methods that are not allowed
djmeyers 0:06ee5f8a484a 538 coap_header->msg_code = COAP_MSG_CODE_REQUEST_GET;
djmeyers 0:06ee5f8a484a 539 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 540
djmeyers 0:06ee5f8a484a 541 coap_header->msg_code = COAP_MSG_CODE_REQUEST_PUT;
djmeyers 0:06ee5f8a484a 542 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 543
djmeyers 0:06ee5f8a484a 544 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 545 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 546
djmeyers 0:06ee5f8a484a 547 //Continue testing with post method
djmeyers 0:06ee5f8a484a 548 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 549
djmeyers 0:06ee5f8a484a 550 uint8_t object_instance[] = {"name/0"};
djmeyers 0:06ee5f8a484a 551
djmeyers 0:06ee5f8a484a 552 coap_header->uri_path_ptr = object_instance;
djmeyers 0:06ee5f8a484a 553 coap_header->uri_path_len = sizeof(object_instance);
djmeyers 0:06ee5f8a484a 554
djmeyers 0:06ee5f8a484a 555 coap_header->payload_ptr = (uint8_t*)malloc(1);
djmeyers 0:06ee5f8a484a 556 m2mobjectinstance_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 557 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 558
djmeyers 0:06ee5f8a484a 559 M2MObject *obj = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 560
djmeyers 0:06ee5f8a484a 561 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 562 m2mbase_stub::nsdl_resource =
djmeyers 0:06ee5f8a484a 563 (sn_nsdl_dynamic_resource_parameters_s*) malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 564 m2mbase_stub::nsdl_resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 565 (sn_nsdl_static_resource_parameters_s*) malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 566 m2mbase_stub::nsdl_resource->static_resource_parameters->path = (uint8_t*)malloc(5);
djmeyers 0:06ee5f8a484a 567 m2mbase_stub::nsdl_resource->static_resource_parameters->path[0] = 'n';
djmeyers 0:06ee5f8a484a 568 m2mbase_stub::nsdl_resource->static_resource_parameters->path[1] = 'a';
djmeyers 0:06ee5f8a484a 569 m2mbase_stub::nsdl_resource->static_resource_parameters->path[2] = 'm';
djmeyers 0:06ee5f8a484a 570 m2mbase_stub::nsdl_resource->static_resource_parameters->path[3] = 'e';
djmeyers 0:06ee5f8a484a 571 m2mbase_stub::nsdl_resource->static_resource_parameters->path[4] = '\0';
djmeyers 0:06ee5f8a484a 572 m2mbase_stub::nsdl_resource->static_resource_parameters->pathlen = 5;
djmeyers 0:06ee5f8a484a 573
djmeyers 0:06ee5f8a484a 574 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 575
djmeyers 0:06ee5f8a484a 576 m2mobject_stub::inst = new M2MObjectInstance(*obj, "name", "", "");
djmeyers 0:06ee5f8a484a 577
djmeyers 0:06ee5f8a484a 578 m2mobject_stub::header = (sn_coap_hdr_s*) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 579 memset(m2mobject_stub::header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 580
djmeyers 0:06ee5f8a484a 581 m2mobjectinstance_stub::header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 582 memset(m2mobjectinstance_stub::header, 0, sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 583 m2mobjectinstance_stub::header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 584 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 585 m2mobjectinstance_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 586
djmeyers 0:06ee5f8a484a 587 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 588 m2mobjectinstance_stub::header = NULL;
djmeyers 0:06ee5f8a484a 589
djmeyers 0:06ee5f8a484a 590 m2mobjectinstance_stub::header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 591 memset(m2mobjectinstance_stub::header, 0, sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 592
djmeyers 0:06ee5f8a484a 593 m2mobjectinstance_stub::header->msg_code = COAP_MSG_CODE_RESPONSE_CREATED;
djmeyers 0:06ee5f8a484a 594 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 595 m2mobjectinstance_stub::header = NULL;
djmeyers 0:06ee5f8a484a 596
djmeyers 0:06ee5f8a484a 597 free(coap_header->payload_ptr);
djmeyers 0:06ee5f8a484a 598 coap_header->payload_ptr = NULL;
djmeyers 0:06ee5f8a484a 599
djmeyers 0:06ee5f8a484a 600 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 601
djmeyers 0:06ee5f8a484a 602 delete m2mobject_stub::inst;
djmeyers 0:06ee5f8a484a 603 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 604 delete obj;
djmeyers 0:06ee5f8a484a 605
djmeyers 0:06ee5f8a484a 606 free(coap_header->payload_ptr);
djmeyers 0:06ee5f8a484a 607 free(m2mobject_stub::header);
djmeyers 0:06ee5f8a484a 608 m2mobject_stub::header = NULL;
djmeyers 0:06ee5f8a484a 609
djmeyers 0:06ee5f8a484a 610 uint8_t object_instance1[] = {"name/65536"};
djmeyers 0:06ee5f8a484a 611
djmeyers 0:06ee5f8a484a 612 coap_header->uri_path_ptr = object_instance1;
djmeyers 0:06ee5f8a484a 613 coap_header->uri_path_len = sizeof(object_instance1);
djmeyers 0:06ee5f8a484a 614
djmeyers 0:06ee5f8a484a 615 obj = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 616
djmeyers 0:06ee5f8a484a 617 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 618
djmeyers 0:06ee5f8a484a 619 m2mobject_stub::inst = new M2MObjectInstance(*obj, "name", "", "");
djmeyers 0:06ee5f8a484a 620
djmeyers 0:06ee5f8a484a 621 m2mobject_stub::header = (sn_coap_hdr_s*) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 622 memset(m2mobject_stub::header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 623
djmeyers 0:06ee5f8a484a 624 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 625
djmeyers 0:06ee5f8a484a 626 delete m2mobject_stub::inst;
djmeyers 0:06ee5f8a484a 627 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 628 delete obj;
djmeyers 0:06ee5f8a484a 629
djmeyers 0:06ee5f8a484a 630 free(m2mobject_stub::header);
djmeyers 0:06ee5f8a484a 631
djmeyers 0:06ee5f8a484a 632 uint8_t resource[] = {"name/0/resource"};
djmeyers 0:06ee5f8a484a 633
djmeyers 0:06ee5f8a484a 634 coap_header->uri_path_ptr = resource;
djmeyers 0:06ee5f8a484a 635 coap_header->uri_path_len = sizeof(resource);
djmeyers 0:06ee5f8a484a 636
djmeyers 0:06ee5f8a484a 637 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 638
djmeyers 0:06ee5f8a484a 639 // Test EMPTY ACK
djmeyers 0:06ee5f8a484a 640 coap_header->msg_code = COAP_MSG_CODE_EMPTY;
djmeyers 0:06ee5f8a484a 641 obj = new M2MObject("0", "0");
djmeyers 0:06ee5f8a484a 642 m2mbase_stub::string_value = "0";
djmeyers 0:06ee5f8a484a 643 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 644 m2mobject_stub::inst = new M2MObjectInstance(*obj, "name", "", "");
djmeyers 0:06ee5f8a484a 645
djmeyers 0:06ee5f8a484a 646 uint8_t *token = (uint8_t*) malloc(4);
djmeyers 0:06ee5f8a484a 647 token[0] = 't';
djmeyers 0:06ee5f8a484a 648 token[1] = 'o';
djmeyers 0:06ee5f8a484a 649 token[2] = 'k';
djmeyers 0:06ee5f8a484a 650 token[3] = 'e';
djmeyers 0:06ee5f8a484a 651 coap_header->token_ptr = token;
djmeyers 0:06ee5f8a484a 652 coap_header->token_len = 4;
djmeyers 0:06ee5f8a484a 653
djmeyers 0:06ee5f8a484a 654 M2MResource res2(*m2mobject_stub::inst, "test","test",M2MResourceInstance::STRING,false, "test");
djmeyers 0:06ee5f8a484a 655 m2mbase_stub::object_token = token;
djmeyers 0:06ee5f8a484a 656 m2mbase_stub::object_token_len = 4;
djmeyers 0:06ee5f8a484a 657 m2mobject_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 658 res2.set_observation_token(token, 4);
djmeyers 0:06ee5f8a484a 659
djmeyers 0:06ee5f8a484a 660 m2mobjectinstance_stub::resource_list.push_back(&res2);
djmeyers 0:06ee5f8a484a 661 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 662
djmeyers 0:06ee5f8a484a 663 // Test RESET message
djmeyers 0:06ee5f8a484a 664 coap_header->msg_type = COAP_MSG_TYPE_RESET;
djmeyers 0:06ee5f8a484a 665 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 666 m2mobject_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 667 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 668 m2mobject_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 669 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 670 m2mobject_stub::base_type = M2MBase::ResourceInstance;
djmeyers 0:06ee5f8a484a 671 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,NULL));
djmeyers 0:06ee5f8a484a 672 free(token);
djmeyers 0:06ee5f8a484a 673 delete m2mobject_stub::inst;
djmeyers 0:06ee5f8a484a 674 delete obj;
djmeyers 0:06ee5f8a484a 675 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 676
djmeyers 0:06ee5f8a484a 677
djmeyers 0:06ee5f8a484a 678 // Bootstrap cases start from here
djmeyers 0:06ee5f8a484a 679 // handle_bootstrap_put_message() invalid object name
djmeyers 0:06ee5f8a484a 680 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 681 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 682 memset(address, 0, sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 683 address->addr_len = 1;
djmeyers 0:06ee5f8a484a 684 address->addr_ptr = (uint8_t *)malloc(1);
djmeyers 0:06ee5f8a484a 685 address->addr_ptr[0] = 1;
djmeyers 0:06ee5f8a484a 686 address->port = 5683;
djmeyers 0:06ee5f8a484a 687 handle->oma_bs_address_len = 1;
djmeyers 0:06ee5f8a484a 688 handle->oma_bs_port = 5683;
djmeyers 0:06ee5f8a484a 689 handle->oma_bs_address_ptr = (uint8_t *)malloc(1);
djmeyers 0:06ee5f8a484a 690 handle->oma_bs_address_ptr[0] = 1;
djmeyers 0:06ee5f8a484a 691 coap_header->msg_code = COAP_MSG_CODE_REQUEST_PUT;
djmeyers 0:06ee5f8a484a 692 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 693 CHECK(0== nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 694 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 695
djmeyers 0:06ee5f8a484a 696 // handle_bootstrap_put_message() invalid content type
djmeyers 0:06ee5f8a484a 697 obj = new M2MObject("0", "0");
djmeyers 0:06ee5f8a484a 698 m2mbase_stub::string_value = "0";
djmeyers 0:06ee5f8a484a 699 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 700 m2mobject_stub::inst = new M2MObjectInstance(*obj, "name", "", "");
djmeyers 0:06ee5f8a484a 701 uint8_t security[] = {"0"};
djmeyers 0:06ee5f8a484a 702 coap_header->uri_path_ptr = security;
djmeyers 0:06ee5f8a484a 703 coap_header->uri_path_len = sizeof(security);
djmeyers 0:06ee5f8a484a 704 M2MResource res(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,false,"test");
djmeyers 0:06ee5f8a484a 705 m2mobjectinstance_stub::resource_list.push_back(&res);
djmeyers 0:06ee5f8a484a 706 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 707 m2msecurity_stub::resource = new M2MResource(*m2mobject_stub::inst,"1","type",M2MResourceInstance::STRING,false,"1");
djmeyers 0:06ee5f8a484a 708 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 709 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 710
djmeyers 0:06ee5f8a484a 711 // handle_bootstrap_put_message() success
djmeyers 0:06ee5f8a484a 712 coap_header->token_ptr = String::convert_integer_to_array(1,coap_header->token_len);
djmeyers 0:06ee5f8a484a 713 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 714 m2mtlvdeserializer_stub::is_object_bool_value = true;
djmeyers 0:06ee5f8a484a 715 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 716 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 717 coap_header->content_format = sn_coap_content_format_e(99);
djmeyers 0:06ee5f8a484a 718 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 719 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 720 m2mtlvdeserializer_stub::is_object_bool_value = true;
djmeyers 0:06ee5f8a484a 721 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 722 CHECK(observer->boot_error == false);
djmeyers 0:06ee5f8a484a 723
djmeyers 0:06ee5f8a484a 724 // handle_bootstrap_put_message() TLV parsing fails
djmeyers 0:06ee5f8a484a 725 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 726 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 727 m2mtlvdeserializer_stub::is_object_bool_value = false;
djmeyers 0:06ee5f8a484a 728 m2mtlvdeserializer_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 729 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::NotAllowed;
djmeyers 0:06ee5f8a484a 730 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 731 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 732 delete m2mobject_stub::inst;
djmeyers 0:06ee5f8a484a 733 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 734 delete obj;
djmeyers 0:06ee5f8a484a 735
djmeyers 0:06ee5f8a484a 736 // handle_bootstrap_put_message() TLV object instance
djmeyers 0:06ee5f8a484a 737 obj = new M2MObject("1", "1");
djmeyers 0:06ee5f8a484a 738 m2mbase_stub::string_value = "1";
djmeyers 0:06ee5f8a484a 739 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 740 m2mobject_stub::inst = new M2MObjectInstance(*obj, "name","", "");
djmeyers 0:06ee5f8a484a 741 uint8_t server[] = {"1"};
djmeyers 0:06ee5f8a484a 742 coap_header->uri_path_ptr = server;
djmeyers 0:06ee5f8a484a 743 coap_header->uri_path_len = 1;
djmeyers 0:06ee5f8a484a 744
djmeyers 0:06ee5f8a484a 745 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 746 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 747 m2mtlvdeserializer_stub::is_object_bool_value = false;
djmeyers 0:06ee5f8a484a 748 m2mtlvdeserializer_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 749 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::None;
djmeyers 0:06ee5f8a484a 750 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 751 CHECK(observer->boot_error == false);
djmeyers 0:06ee5f8a484a 752
djmeyers 0:06ee5f8a484a 753 // handle_bootstrap_put_message() TLV server object
djmeyers 0:06ee5f8a484a 754 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 755 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 756 m2mtlvdeserializer_stub::is_object_bool_value = true;
djmeyers 0:06ee5f8a484a 757 m2mtlvdeserializer_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 758 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::None;
djmeyers 0:06ee5f8a484a 759 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 760 CHECK(observer->boot_error == false);
djmeyers 0:06ee5f8a484a 761
djmeyers 0:06ee5f8a484a 762 // handle_bootstrap_put_message() TLV not resource
djmeyers 0:06ee5f8a484a 763 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 764 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 765 m2mtlvdeserializer_stub::is_object_bool_value = false;
djmeyers 0:06ee5f8a484a 766 m2mtlvdeserializer_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 767 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::None;
djmeyers 0:06ee5f8a484a 768 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 769 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 770 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 771
djmeyers 0:06ee5f8a484a 772 // handle_bootstrap_delete() object name not match
djmeyers 0:06ee5f8a484a 773 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 774 nsdl->_bootstrap_id = 8;
djmeyers 0:06ee5f8a484a 775 handle->bootstrap_msg_id = 8;
djmeyers 0:06ee5f8a484a 776 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CHANGED;
djmeyers 0:06ee5f8a484a 777 coap_header->msg_id = 8;
djmeyers 0:06ee5f8a484a 778 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 779 coap_header->msg_id = 18;
djmeyers 0:06ee5f8a484a 780 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 781 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 782 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 783 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 784 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 785
djmeyers 0:06ee5f8a484a 786 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 787 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 788
djmeyers 0:06ee5f8a484a 789 // handle_bootstrap_delete() _identity_accepted false
djmeyers 0:06ee5f8a484a 790 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 791 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 792 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 793 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 794 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 795 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 796
djmeyers 0:06ee5f8a484a 797 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 798 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 799
djmeyers 0:06ee5f8a484a 800 // handle_bootstrap_delete() object name not match
djmeyers 0:06ee5f8a484a 801 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 802 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CHANGED;
djmeyers 0:06ee5f8a484a 803 coap_header->msg_id = 8;
djmeyers 0:06ee5f8a484a 804 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 805 coap_header->msg_id = 18;
djmeyers 0:06ee5f8a484a 806 uint8_t object_name[] = {"0/0"};
djmeyers 0:06ee5f8a484a 807 coap_header->uri_path_ptr = object_name;
djmeyers 0:06ee5f8a484a 808 coap_header->uri_path_len = 3;
djmeyers 0:06ee5f8a484a 809 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 810 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 811 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 812 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 813 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 814
djmeyers 0:06ee5f8a484a 815 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 816 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 817
djmeyers 0:06ee5f8a484a 818 // handle_bootstrap_delete() object name not match
djmeyers 0:06ee5f8a484a 819 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 820 coap_header->msg_code = COAP_MSG_CODE_RESPONSE_CHANGED;
djmeyers 0:06ee5f8a484a 821 coap_header->msg_id = 8;
djmeyers 0:06ee5f8a484a 822 nsdl->received_from_server_callback(handle,coap_header,NULL);
djmeyers 0:06ee5f8a484a 823 coap_header->msg_id = 18;
djmeyers 0:06ee5f8a484a 824 uint8_t invalid[] = {"0/0/1"};
djmeyers 0:06ee5f8a484a 825 coap_header->uri_path_ptr = invalid;
djmeyers 0:06ee5f8a484a 826 coap_header->uri_path_len = 5;
djmeyers 0:06ee5f8a484a 827 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 828 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 829 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 830 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 831 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 832
djmeyers 0:06ee5f8a484a 833 //handle_bootstrap_finished() path does not match
djmeyers 0:06ee5f8a484a 834 coap_header->uri_path_ptr = server;
djmeyers 0:06ee5f8a484a 835 coap_header->uri_path_len = 1;
djmeyers 0:06ee5f8a484a 836 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 837 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 838 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 839 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 840 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 841 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 842 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 843
djmeyers 0:06ee5f8a484a 844 //handle_bootstrap_finished() send coap response
djmeyers 0:06ee5f8a484a 845 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 846 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 847 m2msecurity_stub::string_value = new String("coaps://");
djmeyers 0:06ee5f8a484a 848 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 849 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 850 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 851 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 852 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 853 CHECK(nsdl->_security == NULL);
djmeyers 0:06ee5f8a484a 854
djmeyers 0:06ee5f8a484a 855 //handle_bootstrap_finished() success no security
djmeyers 0:06ee5f8a484a 856 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 857 m2msecurity_stub::sec_mode = M2MSecurity::NoSecurity;
djmeyers 0:06ee5f8a484a 858 m2msecurity_stub::int_value = true;
djmeyers 0:06ee5f8a484a 859 m2msecurity_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 860 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 861 observer->boot_wait = false;
djmeyers 0:06ee5f8a484a 862 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 863 coap_header->uri_path_ptr = (uint8_t*)malloc(2);
djmeyers 0:06ee5f8a484a 864 coap_header->uri_path_len = 2;
djmeyers 0:06ee5f8a484a 865 coap_header->uri_path_ptr[0] = 'b';
djmeyers 0:06ee5f8a484a 866 coap_header->uri_path_ptr[1] = 's';
djmeyers 0:06ee5f8a484a 867 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 868 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 869 CHECK(observer->boot_error == false);
djmeyers 0:06ee5f8a484a 870 CHECK(observer->boot_wait == true);
djmeyers 0:06ee5f8a484a 871 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 872
djmeyers 0:06ee5f8a484a 873 //handle_bootstrap_finished() success certificate
djmeyers 0:06ee5f8a484a 874 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 875 m2msecurity_stub::sec_mode = M2MSecurity::Certificate;
djmeyers 0:06ee5f8a484a 876 m2mresourceinstance_stub::int_value = 10;
djmeyers 0:06ee5f8a484a 877 m2msecurity_stub::int_value = true;
djmeyers 0:06ee5f8a484a 878 m2msecurity_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 879 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 880 observer->boot_wait = false;
djmeyers 0:06ee5f8a484a 881 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 882 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 883
djmeyers 0:06ee5f8a484a 884 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 885 CHECK(observer->boot_error == false);
djmeyers 0:06ee5f8a484a 886 CHECK(observer->boot_wait == true);
djmeyers 0:06ee5f8a484a 887 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 888
djmeyers 0:06ee5f8a484a 889 //handle_bootstrap_finished() fail, Psk not supported
djmeyers 0:06ee5f8a484a 890 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 891 m2msecurity_stub::sec_mode = M2MSecurity::Psk;
djmeyers 0:06ee5f8a484a 892 m2msecurity_stub::int_value = true;
djmeyers 0:06ee5f8a484a 893 m2msecurity_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 894 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 895 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 896 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 897 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 898 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 899 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 900
djmeyers 0:06ee5f8a484a 901 //handle_bootstrap_finished() fail, Bootstrap server
djmeyers 0:06ee5f8a484a 902 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 903 m2msecurity_stub::sec_mode = M2MSecurity::Certificate;
djmeyers 0:06ee5f8a484a 904 m2msecurity_stub::int_value = true;
djmeyers 0:06ee5f8a484a 905 m2msecurity_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 906 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 907 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 908 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 909 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 910 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 911 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 912
djmeyers 0:06ee5f8a484a 913 //handle_bootstrap_finished() fail, key size 0
djmeyers 0:06ee5f8a484a 914 nsdl->_security = new M2MSecurity(M2MSecurity::M2MServer);
djmeyers 0:06ee5f8a484a 915 m2msecurity_stub::sec_mode = M2MSecurity::Certificate;
djmeyers 0:06ee5f8a484a 916 m2msecurity_stub::int_value = false;
djmeyers 0:06ee5f8a484a 917 m2msecurity_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 918 m2mresourceinstance_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 919 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 920 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 921 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 922 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 923 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 924 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 925
djmeyers 0:06ee5f8a484a 926 //handle_bootstrap_finished() fail, _security null
djmeyers 0:06ee5f8a484a 927 m2msecurity_stub::sec_mode = M2MSecurity::Certificate;
djmeyers 0:06ee5f8a484a 928 m2msecurity_stub::int_value = false;
djmeyers 0:06ee5f8a484a 929 m2msecurity_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 930 m2mresourceinstance_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 931 observer->boot_error = false;
djmeyers 0:06ee5f8a484a 932 observer->boot_done = false;
djmeyers 0:06ee5f8a484a 933 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 934 CHECK(0 == nsdl->received_from_server_callback(handle,coap_header,address));
djmeyers 0:06ee5f8a484a 935 CHECK(observer->boot_error == true);
djmeyers 0:06ee5f8a484a 936 CHECK(observer->boot_done == false);
djmeyers 0:06ee5f8a484a 937
djmeyers 0:06ee5f8a484a 938 delete m2mobject_stub::inst;
djmeyers 0:06ee5f8a484a 939 //delete m2mbase_stub::string_value;
djmeyers 0:06ee5f8a484a 940 //m2mbase_stub::string_value = NULL;
djmeyers 0:06ee5f8a484a 941 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 942 m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 943 delete obj;
djmeyers 0:06ee5f8a484a 944 delete m2msecurity_stub::string_value;
djmeyers 0:06ee5f8a484a 945 delete m2msecurity_stub::resource;
djmeyers 0:06ee5f8a484a 946
djmeyers 0:06ee5f8a484a 947 free(m2mbase_stub::nsdl_resource->static_resource_parameters->path);
djmeyers 0:06ee5f8a484a 948 free(m2mbase_stub::nsdl_resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 949 free(m2mbase_stub::nsdl_resource);
djmeyers 0:06ee5f8a484a 950
djmeyers 0:06ee5f8a484a 951 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 952 free(address->addr_ptr);
djmeyers 0:06ee5f8a484a 953 free(address);
djmeyers 0:06ee5f8a484a 954 free(coap_header->token_ptr);
djmeyers 0:06ee5f8a484a 955 free(coap_header->uri_path_ptr);
djmeyers 0:06ee5f8a484a 956 free(coap_header);
djmeyers 0:06ee5f8a484a 957 free(handle->oma_bs_address_ptr);
djmeyers 0:06ee5f8a484a 958 free(handle);
djmeyers 0:06ee5f8a484a 959 }
djmeyers 0:06ee5f8a484a 960
djmeyers 0:06ee5f8a484a 961 void Test_M2MNsdlInterface::test_resource_callback()
djmeyers 0:06ee5f8a484a 962 {
djmeyers 0:06ee5f8a484a 963 uint8_t value[] = {"name"};
djmeyers 0:06ee5f8a484a 964 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 965 memset(coap_header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 966 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 967 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 968
djmeyers 0:06ee5f8a484a 969 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 970 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 971
djmeyers 0:06ee5f8a484a 972 common_stub::coap_header->payload_ptr =(uint8_t*)malloc(1);
djmeyers 0:06ee5f8a484a 973 common_stub::coap_header->payload_len = 1;
djmeyers 0:06ee5f8a484a 974
djmeyers 0:06ee5f8a484a 975 coap_header->uri_path_ptr = value;
djmeyers 0:06ee5f8a484a 976 coap_header->uri_path_len = sizeof(value);
djmeyers 0:06ee5f8a484a 977
djmeyers 0:06ee5f8a484a 978 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 979
djmeyers 0:06ee5f8a484a 980 common_stub::coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 981
djmeyers 0:06ee5f8a484a 982 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 983
djmeyers 0:06ee5f8a484a 984 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 985 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 986 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 987 m2mbase_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 988 m2mobject_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 989 m2mbase_stub::nsdl_resource =
djmeyers 0:06ee5f8a484a 990 (sn_nsdl_dynamic_resource_parameters_s*) malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 991 m2mbase_stub::nsdl_resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 992 (sn_nsdl_static_resource_parameters_s*) malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 993 m2mbase_stub::nsdl_resource->static_resource_parameters->path = (uint8_t*)malloc(5);
djmeyers 0:06ee5f8a484a 994 m2mbase_stub::nsdl_resource->static_resource_parameters->path[0] = 'n';
djmeyers 0:06ee5f8a484a 995 m2mbase_stub::nsdl_resource->static_resource_parameters->path[1] = 'a';
djmeyers 0:06ee5f8a484a 996 m2mbase_stub::nsdl_resource->static_resource_parameters->path[2] = 'm';
djmeyers 0:06ee5f8a484a 997 m2mbase_stub::nsdl_resource->static_resource_parameters->path[3] = 'e';
djmeyers 0:06ee5f8a484a 998 m2mbase_stub::nsdl_resource->static_resource_parameters->path[4] = '\0';
djmeyers 0:06ee5f8a484a 999 m2mbase_stub::nsdl_resource->static_resource_parameters->pathlen = 5;
djmeyers 0:06ee5f8a484a 1000
djmeyers 0:06ee5f8a484a 1001 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1002
djmeyers 0:06ee5f8a484a 1003 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_COAP) ==0);
djmeyers 0:06ee5f8a484a 1004
djmeyers 0:06ee5f8a484a 1005 coap_header->msg_code = COAP_MSG_CODE_REQUEST_PUT;
djmeyers 0:06ee5f8a484a 1006 m2mobject_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1007 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_COAP) ==0);
djmeyers 0:06ee5f8a484a 1008
djmeyers 0:06ee5f8a484a 1009 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 1010
djmeyers 0:06ee5f8a484a 1011 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_COAP) ==0);
djmeyers 0:06ee5f8a484a 1012 m2mobject_stub::base_type = M2MBase::ResourceInstance;
djmeyers 0:06ee5f8a484a 1013 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_COAP) ==0);
djmeyers 0:06ee5f8a484a 1014
djmeyers 0:06ee5f8a484a 1015 delete object;
djmeyers 0:06ee5f8a484a 1016 free(m2mbase_stub::nsdl_resource->static_resource_parameters->path);
djmeyers 0:06ee5f8a484a 1017 free(m2mbase_stub::nsdl_resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 1018 free(m2mbase_stub::nsdl_resource);
djmeyers 0:06ee5f8a484a 1019
djmeyers 0:06ee5f8a484a 1020 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1021 free(address);
djmeyers 0:06ee5f8a484a 1022 free(coap_header);
djmeyers 0:06ee5f8a484a 1023 }
djmeyers 0:06ee5f8a484a 1024
djmeyers 0:06ee5f8a484a 1025
djmeyers 0:06ee5f8a484a 1026 void Test_M2MNsdlInterface::test_resource_callback_get()
djmeyers 0:06ee5f8a484a 1027 {
djmeyers 0:06ee5f8a484a 1028 }
djmeyers 0:06ee5f8a484a 1029
djmeyers 0:06ee5f8a484a 1030 void Test_M2MNsdlInterface::test_resource_callback_put()
djmeyers 0:06ee5f8a484a 1031 {
djmeyers 0:06ee5f8a484a 1032 uint8_t value[] = {"name/0/resource"};
djmeyers 0:06ee5f8a484a 1033 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1034 memset(coap_header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1035 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1036 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1037
djmeyers 0:06ee5f8a484a 1038 coap_header->uri_path_ptr = value;
djmeyers 0:06ee5f8a484a 1039 coap_header->uri_path_len = sizeof(value);
djmeyers 0:06ee5f8a484a 1040
djmeyers 0:06ee5f8a484a 1041 coap_header->msg_code = COAP_MSG_CODE_REQUEST_PUT;
djmeyers 0:06ee5f8a484a 1042
djmeyers 0:06ee5f8a484a 1043 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1044 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 1045
djmeyers 0:06ee5f8a484a 1046 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1047 M2MObjectInstance* instance = new M2MObjectInstance(*object,"name","", "");
djmeyers 0:06ee5f8a484a 1048
djmeyers 0:06ee5f8a484a 1049 M2MResource* create_resource = new M2MResource(*instance,
djmeyers 0:06ee5f8a484a 1050 "res",
djmeyers 0:06ee5f8a484a 1051 "res",
djmeyers 0:06ee5f8a484a 1052 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1053 false,
djmeyers 0:06ee5f8a484a 1054 "res");
djmeyers 0:06ee5f8a484a 1055 m2mobject_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1056 m2mobject_stub::instance_list.push_back(instance);
djmeyers 0:06ee5f8a484a 1057
djmeyers 0:06ee5f8a484a 1058 m2mobjectinstance_stub::resource_list.push_back(create_resource);
djmeyers 0:06ee5f8a484a 1059 m2mobjectinstance_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 1060
djmeyers 0:06ee5f8a484a 1061 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1062
djmeyers 0:06ee5f8a484a 1063 m2mbase_stub::operation = M2MBase::PUT_ALLOWED;
djmeyers 0:06ee5f8a484a 1064
djmeyers 0:06ee5f8a484a 1065 coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1066
djmeyers 0:06ee5f8a484a 1067 uint8_t query[] = {"pmax=200&pmin=120"};
djmeyers 0:06ee5f8a484a 1068 coap_header->options_list_ptr->uri_query_ptr = (uint8_t*)malloc(sizeof(query));
djmeyers 0:06ee5f8a484a 1069 coap_header->options_list_ptr->uri_query_len = sizeof(query);
djmeyers 0:06ee5f8a484a 1070
djmeyers 0:06ee5f8a484a 1071 m2mbase_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1072
djmeyers 0:06ee5f8a484a 1073 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1074 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1075 common_stub::coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 1076 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1077
djmeyers 0:06ee5f8a484a 1078 m2mobject_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1079 m2mbase_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1080 m2mobject_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1081 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1082
djmeyers 0:06ee5f8a484a 1083 m2mobject_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1084 m2mbase_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1085 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1086
djmeyers 0:06ee5f8a484a 1087 m2mbase_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1088 m2mbase_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 1089
djmeyers 0:06ee5f8a484a 1090 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1091
djmeyers 0:06ee5f8a484a 1092 delete object;
djmeyers 0:06ee5f8a484a 1093 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 1094 delete instance;
djmeyers 0:06ee5f8a484a 1095 // m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 1096 delete create_resource;
djmeyers 0:06ee5f8a484a 1097
djmeyers 0:06ee5f8a484a 1098 free(coap_header->options_list_ptr->uri_query_ptr);
djmeyers 0:06ee5f8a484a 1099 free(coap_header->options_list_ptr);
djmeyers 0:06ee5f8a484a 1100 if(common_stub::coap_header){
djmeyers 0:06ee5f8a484a 1101 if( common_stub::coap_header->options_list_ptr){
djmeyers 0:06ee5f8a484a 1102 free(common_stub::coap_header->options_list_ptr);
djmeyers 0:06ee5f8a484a 1103 common_stub::coap_header->options_list_ptr = NULL;
djmeyers 0:06ee5f8a484a 1104 }
djmeyers 0:06ee5f8a484a 1105 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1106 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 1107 }
djmeyers 0:06ee5f8a484a 1108 free(coap_header);
djmeyers 0:06ee5f8a484a 1109 free(address);
djmeyers 0:06ee5f8a484a 1110
djmeyers 0:06ee5f8a484a 1111 m2mbase_stub::clear();
djmeyers 0:06ee5f8a484a 1112 common_stub::clear();
djmeyers 0:06ee5f8a484a 1113 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1114 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1115 }
djmeyers 0:06ee5f8a484a 1116
djmeyers 0:06ee5f8a484a 1117 void Test_M2MNsdlInterface::test_resource_callback_post()
djmeyers 0:06ee5f8a484a 1118 {
djmeyers 0:06ee5f8a484a 1119 uint8_t value[] = {"name/0/name"};
djmeyers 0:06ee5f8a484a 1120 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1121 memset(coap_header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1122 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1123 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1124
djmeyers 0:06ee5f8a484a 1125 coap_header->uri_path_ptr = value;
djmeyers 0:06ee5f8a484a 1126 coap_header->uri_path_len = sizeof(value);
djmeyers 0:06ee5f8a484a 1127
djmeyers 0:06ee5f8a484a 1128 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
djmeyers 0:06ee5f8a484a 1129
djmeyers 0:06ee5f8a484a 1130 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1131 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 1132 m2mbase_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 1133 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1134 M2MObjectInstance* instance = new M2MObjectInstance(*object,"name","","");
djmeyers 0:06ee5f8a484a 1135 M2MResource* create_resource = new M2MResource(*instance,
djmeyers 0:06ee5f8a484a 1136 "name",
djmeyers 0:06ee5f8a484a 1137 "name",
djmeyers 0:06ee5f8a484a 1138 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1139 false,
djmeyers 0:06ee5f8a484a 1140 "name");
djmeyers 0:06ee5f8a484a 1141 m2mobject_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1142 m2mobject_stub::instance_list.push_back(instance);
djmeyers 0:06ee5f8a484a 1143
djmeyers 0:06ee5f8a484a 1144 m2mobjectinstance_stub::resource_list.push_back(create_resource);
djmeyers 0:06ee5f8a484a 1145 m2mobjectinstance_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 1146
djmeyers 0:06ee5f8a484a 1147 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1148
djmeyers 0:06ee5f8a484a 1149 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
djmeyers 0:06ee5f8a484a 1150
djmeyers 0:06ee5f8a484a 1151 coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1152
djmeyers 0:06ee5f8a484a 1153 uint8_t query[] = {"pmax=200&pmin=120"};
djmeyers 0:06ee5f8a484a 1154 coap_header->options_list_ptr->uri_query_ptr = (uint8_t*)malloc(sizeof(query));
djmeyers 0:06ee5f8a484a 1155 coap_header->options_list_ptr->uri_query_len = sizeof(query);
djmeyers 0:06ee5f8a484a 1156
djmeyers 0:06ee5f8a484a 1157 m2mbase_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1158
djmeyers 0:06ee5f8a484a 1159 m2mbase_stub::nsdl_resource =
djmeyers 0:06ee5f8a484a 1160 (sn_nsdl_dynamic_resource_parameters_s*) malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1161 m2mbase_stub::nsdl_resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 1162 (sn_nsdl_static_resource_parameters_s*) malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1163 m2mbase_stub::nsdl_resource->static_resource_parameters->path = (uint8_t*)malloc(5);
djmeyers 0:06ee5f8a484a 1164 m2mbase_stub::nsdl_resource->static_resource_parameters->path[0] = 'n';
djmeyers 0:06ee5f8a484a 1165 m2mbase_stub::nsdl_resource->static_resource_parameters->path[1] = 'a';
djmeyers 0:06ee5f8a484a 1166 m2mbase_stub::nsdl_resource->static_resource_parameters->path[2] = 'm';
djmeyers 0:06ee5f8a484a 1167 m2mbase_stub::nsdl_resource->static_resource_parameters->path[3] = 'e';
djmeyers 0:06ee5f8a484a 1168 m2mbase_stub::nsdl_resource->static_resource_parameters->path[4] = '\0';
djmeyers 0:06ee5f8a484a 1169 m2mbase_stub::nsdl_resource->static_resource_parameters->pathlen = 5;
djmeyers 0:06ee5f8a484a 1170
djmeyers 0:06ee5f8a484a 1171 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1172 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1173 common_stub::coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 1174 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1175
djmeyers 0:06ee5f8a484a 1176 m2mobject_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1177 m2mbase_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1178 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1179
djmeyers 0:06ee5f8a484a 1180 m2mobject_stub::base_type = M2MBase::ResourceInstance;
djmeyers 0:06ee5f8a484a 1181 m2mbase_stub::base_type = M2MBase::ResourceInstance;
djmeyers 0:06ee5f8a484a 1182 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1183
djmeyers 0:06ee5f8a484a 1184 m2mobject_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1185 m2mbase_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1186 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1187
djmeyers 0:06ee5f8a484a 1188 m2mbase_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1189 m2mbase_stub::bool_value = false;
djmeyers 0:06ee5f8a484a 1190
djmeyers 0:06ee5f8a484a 1191 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1192
djmeyers 0:06ee5f8a484a 1193 delete object;
djmeyers 0:06ee5f8a484a 1194 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 1195 delete instance;
djmeyers 0:06ee5f8a484a 1196 m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 1197 delete create_resource;
djmeyers 0:06ee5f8a484a 1198
djmeyers 0:06ee5f8a484a 1199 free(coap_header->options_list_ptr->uri_query_ptr);
djmeyers 0:06ee5f8a484a 1200 free(coap_header->options_list_ptr);
djmeyers 0:06ee5f8a484a 1201 if(common_stub::coap_header){
djmeyers 0:06ee5f8a484a 1202 if( common_stub::coap_header->options_list_ptr){
djmeyers 0:06ee5f8a484a 1203 free(common_stub::coap_header->options_list_ptr);
djmeyers 0:06ee5f8a484a 1204 common_stub::coap_header->options_list_ptr = NULL;
djmeyers 0:06ee5f8a484a 1205 }
djmeyers 0:06ee5f8a484a 1206 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1207 common_stub::coap_header = NULL;
djmeyers 0:06ee5f8a484a 1208 }
djmeyers 0:06ee5f8a484a 1209 free(coap_header);
djmeyers 0:06ee5f8a484a 1210 free(address);
djmeyers 0:06ee5f8a484a 1211 free(m2mbase_stub::nsdl_resource->static_resource_parameters->path);
djmeyers 0:06ee5f8a484a 1212 free(m2mbase_stub::nsdl_resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 1213 free(m2mbase_stub::nsdl_resource);
djmeyers 0:06ee5f8a484a 1214
djmeyers 0:06ee5f8a484a 1215 m2mbase_stub::clear();
djmeyers 0:06ee5f8a484a 1216 common_stub::clear();
djmeyers 0:06ee5f8a484a 1217 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1218 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1219 }
djmeyers 0:06ee5f8a484a 1220
djmeyers 0:06ee5f8a484a 1221 void Test_M2MNsdlInterface::test_resource_callback_delete()
djmeyers 0:06ee5f8a484a 1222 {
djmeyers 0:06ee5f8a484a 1223 uint8_t value[] = {"name/0"};
djmeyers 0:06ee5f8a484a 1224 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1225 memset(coap_header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1226 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1227 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1228
djmeyers 0:06ee5f8a484a 1229 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1230 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
djmeyers 0:06ee5f8a484a 1231
djmeyers 0:06ee5f8a484a 1232 coap_header->uri_path_ptr = value;
djmeyers 0:06ee5f8a484a 1233 coap_header->uri_path_len = sizeof(value);
djmeyers 0:06ee5f8a484a 1234
djmeyers 0:06ee5f8a484a 1235 coap_header->msg_code = COAP_MSG_CODE_REQUEST_DELETE;
djmeyers 0:06ee5f8a484a 1236 common_stub::coap_header->msg_code = COAP_MSG_CODE_RESPONSE_BAD_REQUEST;
djmeyers 0:06ee5f8a484a 1237 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1238
djmeyers 0:06ee5f8a484a 1239 m2mbase_stub::nsdl_resource =
djmeyers 0:06ee5f8a484a 1240 (sn_nsdl_dynamic_resource_parameters_s*) malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1241 m2mbase_stub::nsdl_resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 1242 (sn_nsdl_static_resource_parameters_s*) malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1243
djmeyers 0:06ee5f8a484a 1244 m2mbase_stub::nsdl_resource->static_resource_parameters->path = (uint8_t*)malloc(7);
djmeyers 0:06ee5f8a484a 1245 m2mbase_stub::nsdl_resource->static_resource_parameters->path[0] = 'n';
djmeyers 0:06ee5f8a484a 1246 m2mbase_stub::nsdl_resource->static_resource_parameters->path[1] = 'a';
djmeyers 0:06ee5f8a484a 1247 m2mbase_stub::nsdl_resource->static_resource_parameters->path[2] = 'm';
djmeyers 0:06ee5f8a484a 1248 m2mbase_stub::nsdl_resource->static_resource_parameters->path[3] = 'e';
djmeyers 0:06ee5f8a484a 1249 m2mbase_stub::nsdl_resource->static_resource_parameters->path[4] = '/';
djmeyers 0:06ee5f8a484a 1250 m2mbase_stub::nsdl_resource->static_resource_parameters->path[5] = '0';
djmeyers 0:06ee5f8a484a 1251 m2mbase_stub::nsdl_resource->static_resource_parameters->path[6] = '\0';
djmeyers 0:06ee5f8a484a 1252 m2mbase_stub::nsdl_resource->static_resource_parameters->pathlen = 7;
djmeyers 0:06ee5f8a484a 1253
djmeyers 0:06ee5f8a484a 1254 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1255
djmeyers 0:06ee5f8a484a 1256 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1257 m2mbase_stub::string_value = "name/0";
djmeyers 0:06ee5f8a484a 1258 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1259 M2MObjectInstance* instance = new M2MObjectInstance(*object,"name", "", "name/0");
djmeyers 0:06ee5f8a484a 1260 m2mbase_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1261 m2mobject_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 1262 m2mobject_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1263 m2mobject_stub::instance_list.push_back(instance);
djmeyers 0:06ee5f8a484a 1264 m2mobject_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1265 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1266
djmeyers 0:06ee5f8a484a 1267 m2mbase_stub::operation = M2MBase::DELETE_ALLOWED;
djmeyers 0:06ee5f8a484a 1268
djmeyers 0:06ee5f8a484a 1269 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1270
djmeyers 0:06ee5f8a484a 1271 m2mobject_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1272 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) ==0);
djmeyers 0:06ee5f8a484a 1273
djmeyers 0:06ee5f8a484a 1274 delete instance;
djmeyers 0:06ee5f8a484a 1275 delete object;
djmeyers 0:06ee5f8a484a 1276 free(m2mbase_stub::nsdl_resource->static_resource_parameters->path);
djmeyers 0:06ee5f8a484a 1277 free(m2mbase_stub::nsdl_resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 1278 free(m2mbase_stub::nsdl_resource);
djmeyers 0:06ee5f8a484a 1279 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1280 free(address);
djmeyers 0:06ee5f8a484a 1281 free(coap_header);
djmeyers 0:06ee5f8a484a 1282 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 1283 }
djmeyers 0:06ee5f8a484a 1284
djmeyers 0:06ee5f8a484a 1285 /*
djmeyers 0:06ee5f8a484a 1286 void Test_M2MNsdlInterface::test_resource_callback_reset()
djmeyers 0:06ee5f8a484a 1287 {
djmeyers 0:06ee5f8a484a 1288 uint8_t value[] = {"name"};
djmeyers 0:06ee5f8a484a 1289 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1290 memset(coap_header,0,sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1291 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1292 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1293
djmeyers 0:06ee5f8a484a 1294 coap_header->uri_path_ptr = value;
djmeyers 0:06ee5f8a484a 1295 coap_header->uri_path_len = sizeof(value);
djmeyers 0:06ee5f8a484a 1296
djmeyers 0:06ee5f8a484a 1297 coap_header->msg_type = COAP_MSG_TYPE_RESET;
djmeyers 0:06ee5f8a484a 1298 m2mobjectinstance_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1299 String *name = new String("name");
djmeyers 0:06ee5f8a484a 1300 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1301 m2mbase_stub::string_value = name;
djmeyers 0:06ee5f8a484a 1302 M2MObject *object = new M2MObject(*name);
djmeyers 0:06ee5f8a484a 1303 M2MObjectInstance* instance = new M2MObjectInstance(*name,*object);
djmeyers 0:06ee5f8a484a 1304 M2MResource* create_resource = new M2MResource(*instance,
djmeyers 0:06ee5f8a484a 1305 *name,
djmeyers 0:06ee5f8a484a 1306 *name,
djmeyers 0:06ee5f8a484a 1307 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1308 M2MResource::Dynamic,false);
djmeyers 0:06ee5f8a484a 1309 m2mobject_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1310 m2mobject_stub::instance_list.push_back(instance);
djmeyers 0:06ee5f8a484a 1311
djmeyers 0:06ee5f8a484a 1312 m2mobjectinstance_stub::resource_list.push_back(create_resource);
djmeyers 0:06ee5f8a484a 1313 m2mobjectinstance_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 1314
djmeyers 0:06ee5f8a484a 1315 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1316 // No response for RESET message
djmeyers 0:06ee5f8a484a 1317 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) == 1);
djmeyers 0:06ee5f8a484a 1318
djmeyers 0:06ee5f8a484a 1319
djmeyers 0:06ee5f8a484a 1320 m2mobject_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1321 // No response for RESET message
djmeyers 0:06ee5f8a484a 1322 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) == 1);
djmeyers 0:06ee5f8a484a 1323
djmeyers 0:06ee5f8a484a 1324 m2mobject_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1325 // No response for RESET message
djmeyers 0:06ee5f8a484a 1326 CHECK(nsdl->resource_callback(NULL,coap_header,address,SN_NSDL_PROTOCOL_HTTP) == 1);
djmeyers 0:06ee5f8a484a 1327
djmeyers 0:06ee5f8a484a 1328 delete instance;
djmeyers 0:06ee5f8a484a 1329 delete object;
djmeyers 0:06ee5f8a484a 1330 delete name;
djmeyers 0:06ee5f8a484a 1331 delete create_resource;
djmeyers 0:06ee5f8a484a 1332 free(address);
djmeyers 0:06ee5f8a484a 1333 free(coap_header);
djmeyers 0:06ee5f8a484a 1334 m2mobject_stub::instance_list.clear();
djmeyers 0:06ee5f8a484a 1335 m2mobjectinstance_stub::resource_list.clear();
djmeyers 0:06ee5f8a484a 1336 //nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 1337 }
djmeyers 0:06ee5f8a484a 1338 */
djmeyers 0:06ee5f8a484a 1339 void Test_M2MNsdlInterface::test_process_received_data()
djmeyers 0:06ee5f8a484a 1340 {
djmeyers 0:06ee5f8a484a 1341 uint8_t *data = (uint8_t*)malloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 1342 uint16_t data_size = sizeof(uint16_t);
djmeyers 0:06ee5f8a484a 1343 sn_nsdl_addr_s *address = (sn_nsdl_addr_s *)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1344
djmeyers 0:06ee5f8a484a 1345 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1346
djmeyers 0:06ee5f8a484a 1347 CHECK(nsdl->process_received_data(data,data_size,address) == true);
djmeyers 0:06ee5f8a484a 1348
djmeyers 0:06ee5f8a484a 1349 common_stub::int_value = -1;
djmeyers 0:06ee5f8a484a 1350
djmeyers 0:06ee5f8a484a 1351 CHECK(nsdl->process_received_data(data,data_size,address) == false);
djmeyers 0:06ee5f8a484a 1352
djmeyers 0:06ee5f8a484a 1353 free(address);
djmeyers 0:06ee5f8a484a 1354 free(data);
djmeyers 0:06ee5f8a484a 1355 common_stub::clear();
djmeyers 0:06ee5f8a484a 1356 }
djmeyers 0:06ee5f8a484a 1357
djmeyers 0:06ee5f8a484a 1358 void Test_M2MNsdlInterface::test_stop_timers()
djmeyers 0:06ee5f8a484a 1359 {
djmeyers 0:06ee5f8a484a 1360 // Check if there is no memory leak or crash
djmeyers 0:06ee5f8a484a 1361 nsdl->stop_timers();
djmeyers 0:06ee5f8a484a 1362 }
djmeyers 0:06ee5f8a484a 1363
djmeyers 0:06ee5f8a484a 1364 void Test_M2MNsdlInterface::test_timer_expired()
djmeyers 0:06ee5f8a484a 1365 {
djmeyers 0:06ee5f8a484a 1366 nsdl->timer_expired(M2MTimerObserver::NsdlExecution);
djmeyers 0:06ee5f8a484a 1367 CHECK(nsdl->_counter_for_nsdl == 1);
djmeyers 0:06ee5f8a484a 1368
djmeyers 0:06ee5f8a484a 1369 if( nsdl->_endpoint == NULL){
djmeyers 0:06ee5f8a484a 1370 nsdl->_endpoint = (sn_nsdl_ep_parameters_s*)nsdl->memory_alloc(sizeof(sn_nsdl_ep_parameters_s));
djmeyers 0:06ee5f8a484a 1371 }
djmeyers 0:06ee5f8a484a 1372 nsdl->_endpoint->lifetime_ptr = (uint8_t*)malloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 1373
djmeyers 0:06ee5f8a484a 1374 // For checking the registration update
djmeyers 0:06ee5f8a484a 1375 nsdl->timer_expired(M2MTimerObserver::Registration);
djmeyers 0:06ee5f8a484a 1376
djmeyers 0:06ee5f8a484a 1377 nsdl->delete_endpoint();
djmeyers 0:06ee5f8a484a 1378 CHECK(nsdl->_endpoint == NULL);
djmeyers 0:06ee5f8a484a 1379 }
djmeyers 0:06ee5f8a484a 1380
djmeyers 0:06ee5f8a484a 1381 void Test_M2MNsdlInterface::test_observation_to_be_sent()
djmeyers 0:06ee5f8a484a 1382 {
djmeyers 0:06ee5f8a484a 1383 Vector<uint16_t> instance_list_ids;
djmeyers 0:06ee5f8a484a 1384 m2mbase_stub::clear();
djmeyers 0:06ee5f8a484a 1385 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1386 M2MObjectInstance* instance = new M2MObjectInstance(*object, "name", "", "");
djmeyers 0:06ee5f8a484a 1387 M2MResource *res = new M2MResource(*instance,"res", "res", M2MResourceInstance::INTEGER,false, "res");
djmeyers 0:06ee5f8a484a 1388 M2MResource *res2 = new M2MResource(*instance,"res2", "res2", M2MResourceInstance::INTEGER,false, "res2");
djmeyers 0:06ee5f8a484a 1389
djmeyers 0:06ee5f8a484a 1390
djmeyers 0:06ee5f8a484a 1391 M2MResourceInstance* res_instance = new M2MResourceInstance(*res,
djmeyers 0:06ee5f8a484a 1392 "res", "res",
djmeyers 0:06ee5f8a484a 1393 M2MResourceInstance::INTEGER,0,"",false);
djmeyers 0:06ee5f8a484a 1394 M2MResourceInstance* res_instance_1 = new M2MResourceInstance(*res2,
djmeyers 0:06ee5f8a484a 1395 "res2", "res2",
djmeyers 0:06ee5f8a484a 1396 M2MResourceInstance::INTEGER,0,"",false);
djmeyers 0:06ee5f8a484a 1397 m2mresource_stub::list.clear();
djmeyers 0:06ee5f8a484a 1398 m2mresource_stub::list.push_back(res_instance);
djmeyers 0:06ee5f8a484a 1399 m2mresource_stub::list.push_back(res_instance_1);
djmeyers 0:06ee5f8a484a 1400 m2mresource_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1401 instance_list_ids.push_back(0);
djmeyers 0:06ee5f8a484a 1402
djmeyers 0:06ee5f8a484a 1403 uint8_t value[] = {"value"};
djmeyers 0:06ee5f8a484a 1404 m2mresourceinstance_stub::value = (uint8_t *)malloc(sizeof(value));
djmeyers 0:06ee5f8a484a 1405 memset( m2mresourceinstance_stub::value, 0, sizeof(value));
djmeyers 0:06ee5f8a484a 1406 memcpy(m2mresourceinstance_stub::value,value,sizeof(value));
djmeyers 0:06ee5f8a484a 1407 m2mresourceinstance_stub::int_value = sizeof(value);
djmeyers 0:06ee5f8a484a 1408
djmeyers 0:06ee5f8a484a 1409 m2mbase_stub::uint16_value = 321;
djmeyers 0:06ee5f8a484a 1410 m2mbase_stub::string_value = "token";
djmeyers 0:06ee5f8a484a 1411
djmeyers 0:06ee5f8a484a 1412 m2mresourceinstance_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1413
djmeyers 0:06ee5f8a484a 1414 nsdl->_nsdl_handle = (nsdl_s*)malloc(sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 1415 memset(nsdl->_nsdl_handle,0,sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 1416 sn_nsdl_oma_server_info_t * nsp_address = (sn_nsdl_oma_server_info_t *)malloc(sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1417 memset(nsp_address,0,sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1418 sn_nsdl_addr_s* address = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1419 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1420
djmeyers 0:06ee5f8a484a 1421 nsdl->_nsdl_handle->nsp_address_ptr = nsp_address;
djmeyers 0:06ee5f8a484a 1422 memset(nsdl->_nsdl_handle->nsp_address_ptr,0,sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1423 nsdl->_nsdl_handle->nsp_address_ptr->omalw_address_ptr = address;
djmeyers 0:06ee5f8a484a 1424
djmeyers 0:06ee5f8a484a 1425 //CHECK if nothing crashes
djmeyers 0:06ee5f8a484a 1426 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1427 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1428 nsdl->observation_to_be_sent(res2, 1, instance_list_ids);
djmeyers 0:06ee5f8a484a 1429 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1430
djmeyers 0:06ee5f8a484a 1431 m2mresourceinstance_stub::resource_type = M2MResource::OPAQUE;
djmeyers 0:06ee5f8a484a 1432
djmeyers 0:06ee5f8a484a 1433 //CHECK if nothing crashes
djmeyers 0:06ee5f8a484a 1434 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1435 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1436 nsdl->observation_to_be_sent(res2, 1, instance_list_ids);
djmeyers 0:06ee5f8a484a 1437 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1438
djmeyers 0:06ee5f8a484a 1439 m2mresource_stub::list.clear();
djmeyers 0:06ee5f8a484a 1440 m2mresource_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1441
djmeyers 0:06ee5f8a484a 1442 //CHECK if nothing crashes
djmeyers 0:06ee5f8a484a 1443 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1444 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1445 nsdl->observation_to_be_sent(res, 500, instance_list_ids);
djmeyers 0:06ee5f8a484a 1446 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1447
djmeyers 0:06ee5f8a484a 1448 M2MObjectInstance *object_instance = new M2MObjectInstance(*object, "name", "","");
djmeyers 0:06ee5f8a484a 1449 m2mobject_stub::int_value = 1;
djmeyers 0:06ee5f8a484a 1450 m2mobject_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1451 m2mobject_stub::inst = object_instance;
djmeyers 0:06ee5f8a484a 1452 m2mobjectinstance_stub::resource_list.push_back(res);
djmeyers 0:06ee5f8a484a 1453 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1454 instance_list_ids.push_back(1);
djmeyers 0:06ee5f8a484a 1455 //CHECK if nothing crashes
djmeyers 0:06ee5f8a484a 1456 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1457 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1458 nsdl->observation_to_be_sent(object, 1, instance_list_ids);
djmeyers 0:06ee5f8a484a 1459 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1460
djmeyers 0:06ee5f8a484a 1461 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1462 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1463 nsdl->observation_to_be_sent(object, 500, instance_list_ids, true);
djmeyers 0:06ee5f8a484a 1464 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1465
djmeyers 0:06ee5f8a484a 1466 //CHECK if nothing crashes
djmeyers 0:06ee5f8a484a 1467 m2mobjectinstance_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1468 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1469 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1470 nsdl->observation_to_be_sent(object_instance, 1, instance_list_ids);
djmeyers 0:06ee5f8a484a 1471 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1472
djmeyers 0:06ee5f8a484a 1473 common_stub::coap_header = (sn_coap_hdr_s *) malloc(sizeof(sn_coap_hdr_s));
djmeyers 0:06ee5f8a484a 1474 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
djmeyers 0:06ee5f8a484a 1475 nsdl->observation_to_be_sent(object_instance, 500, instance_list_ids);
djmeyers 0:06ee5f8a484a 1476 free(common_stub::coap_header);
djmeyers 0:06ee5f8a484a 1477
djmeyers 0:06ee5f8a484a 1478 free(m2mresourceinstance_stub::value);
djmeyers 0:06ee5f8a484a 1479 m2mresourceinstance_stub::value = NULL;
djmeyers 0:06ee5f8a484a 1480
djmeyers 0:06ee5f8a484a 1481 m2mbase_stub::clear();
djmeyers 0:06ee5f8a484a 1482 m2mresourceinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1483 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1484 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1485 m2mresource_stub::list.clear();
djmeyers 0:06ee5f8a484a 1486 delete res;
djmeyers 0:06ee5f8a484a 1487 res = NULL;
djmeyers 0:06ee5f8a484a 1488
djmeyers 0:06ee5f8a484a 1489 delete res2;
djmeyers 0:06ee5f8a484a 1490 res2 = NULL;
djmeyers 0:06ee5f8a484a 1491
djmeyers 0:06ee5f8a484a 1492 delete res_instance;
djmeyers 0:06ee5f8a484a 1493 res_instance = NULL;
djmeyers 0:06ee5f8a484a 1494
djmeyers 0:06ee5f8a484a 1495 delete res_instance_1;
djmeyers 0:06ee5f8a484a 1496 res_instance_1 = NULL;
djmeyers 0:06ee5f8a484a 1497
djmeyers 0:06ee5f8a484a 1498 delete object_instance;
djmeyers 0:06ee5f8a484a 1499 object_instance = NULL;
djmeyers 0:06ee5f8a484a 1500
djmeyers 0:06ee5f8a484a 1501 delete object;
djmeyers 0:06ee5f8a484a 1502 object = NULL;
djmeyers 0:06ee5f8a484a 1503
djmeyers 0:06ee5f8a484a 1504 delete instance;
djmeyers 0:06ee5f8a484a 1505 instance = NULL;
djmeyers 0:06ee5f8a484a 1506
djmeyers 0:06ee5f8a484a 1507 free(nsp_address);
djmeyers 0:06ee5f8a484a 1508 free(address);
djmeyers 0:06ee5f8a484a 1509 free(nsdl->_nsdl_handle);
djmeyers 0:06ee5f8a484a 1510 }
djmeyers 0:06ee5f8a484a 1511
djmeyers 0:06ee5f8a484a 1512 void Test_M2MNsdlInterface::test_resource_to_be_deleted()
djmeyers 0:06ee5f8a484a 1513 {
djmeyers 0:06ee5f8a484a 1514 //Checking coverage for the code
djmeyers 0:06ee5f8a484a 1515 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1516 nsdl->resource_to_be_deleted(object);
djmeyers 0:06ee5f8a484a 1517 delete object;
djmeyers 0:06ee5f8a484a 1518 }
djmeyers 0:06ee5f8a484a 1519
djmeyers 0:06ee5f8a484a 1520 void Test_M2MNsdlInterface::test_value_updated()
djmeyers 0:06ee5f8a484a 1521 {
djmeyers 0:06ee5f8a484a 1522 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1523 M2MObjectInstance *object_instance = new M2MObjectInstance(*object, "name", "", "");
djmeyers 0:06ee5f8a484a 1524 M2MResource *resource = new M2MResource(*object_instance,
djmeyers 0:06ee5f8a484a 1525 "resource_name",
djmeyers 0:06ee5f8a484a 1526 "resource_type",
djmeyers 0:06ee5f8a484a 1527 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1528 false,
djmeyers 0:06ee5f8a484a 1529 "resource_name");
djmeyers 0:06ee5f8a484a 1530
djmeyers 0:06ee5f8a484a 1531 M2MResourceInstance *resource_instance = new M2MResourceInstance(*resource,
djmeyers 0:06ee5f8a484a 1532 "resource_name",
djmeyers 0:06ee5f8a484a 1533 "resource_type",
djmeyers 0:06ee5f8a484a 1534 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1535 0,"",false);
djmeyers 0:06ee5f8a484a 1536
djmeyers 0:06ee5f8a484a 1537 m2mobject_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1538 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 1539 m2mbase_stub::operation = M2MBase::GET_ALLOWED;
djmeyers 0:06ee5f8a484a 1540 nsdl->value_updated(object,"name");
djmeyers 0:06ee5f8a484a 1541 CHECK(observer->value_update == true);
djmeyers 0:06ee5f8a484a 1542 observer->value_update = false;
djmeyers 0:06ee5f8a484a 1543
djmeyers 0:06ee5f8a484a 1544 m2mobjectinstance_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1545
djmeyers 0:06ee5f8a484a 1546 nsdl->value_updated(object_instance,"name/0");
djmeyers 0:06ee5f8a484a 1547 CHECK(observer->value_update == true);
djmeyers 0:06ee5f8a484a 1548 observer->value_update = false;
djmeyers 0:06ee5f8a484a 1549
djmeyers 0:06ee5f8a484a 1550 common_stub::resource = (sn_nsdl_dynamic_resource_parameters_s*)malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1551 memset(common_stub::resource,0, sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1552
djmeyers 0:06ee5f8a484a 1553 common_stub::resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 1554 (sn_nsdl_static_resource_parameters_s*)malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1555 memset(common_stub::resource->static_resource_parameters,0, sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1556
djmeyers 0:06ee5f8a484a 1557 common_stub::resource->static_resource_parameters->resource = (uint8_t*)malloc(2);
djmeyers 0:06ee5f8a484a 1558 memset(common_stub::resource->static_resource_parameters->resource,0, 2);
djmeyers 0:06ee5f8a484a 1559
djmeyers 0:06ee5f8a484a 1560 common_stub::resource->static_resource_parameters->mode = SN_GRS_STATIC;
djmeyers 0:06ee5f8a484a 1561 m2mbase_stub::mode_value = M2MBase::Static;
djmeyers 0:06ee5f8a484a 1562
djmeyers 0:06ee5f8a484a 1563 common_stub::resource->observable = false;
djmeyers 0:06ee5f8a484a 1564 m2mbase_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1565
djmeyers 0:06ee5f8a484a 1566 m2mresourceinstance_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1567 uint8_t value[] = "1";
djmeyers 0:06ee5f8a484a 1568 m2mresourceinstance_stub::value = value;
djmeyers 0:06ee5f8a484a 1569
djmeyers 0:06ee5f8a484a 1570 m2mresourceinstance_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1571
djmeyers 0:06ee5f8a484a 1572 nsdl->value_updated(resource,"name/0/name");
djmeyers 0:06ee5f8a484a 1573 CHECK(observer->value_update == true);
djmeyers 0:06ee5f8a484a 1574 observer->value_update = false;
djmeyers 0:06ee5f8a484a 1575
djmeyers 0:06ee5f8a484a 1576 m2mresourceinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1577 free(common_stub::resource->static_resource_parameters->resource);
djmeyers 0:06ee5f8a484a 1578 free(common_stub::resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 1579 free(common_stub::resource);
djmeyers 0:06ee5f8a484a 1580 common_stub::resource = NULL;
djmeyers 0:06ee5f8a484a 1581 common_stub::clear();
djmeyers 0:06ee5f8a484a 1582
djmeyers 0:06ee5f8a484a 1583 m2mresourceinstance_stub::base_type = M2MBase::ResourceInstance;
djmeyers 0:06ee5f8a484a 1584
djmeyers 0:06ee5f8a484a 1585 common_stub::resource = (sn_nsdl_dynamic_resource_parameters_s*)malloc(sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1586 memset(common_stub::resource,0, sizeof(sn_nsdl_dynamic_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1587
djmeyers 0:06ee5f8a484a 1588 common_stub::resource->static_resource_parameters =
djmeyers 0:06ee5f8a484a 1589 (sn_nsdl_static_resource_parameters_s*)malloc(sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1590 memset(common_stub::resource->static_resource_parameters,0, sizeof(sn_nsdl_static_resource_parameters_s));
djmeyers 0:06ee5f8a484a 1591
djmeyers 0:06ee5f8a484a 1592 common_stub::resource->static_resource_parameters->resource = (uint8_t*)malloc(2);
djmeyers 0:06ee5f8a484a 1593 memset(common_stub::resource->static_resource_parameters->resource,0, 2);
djmeyers 0:06ee5f8a484a 1594
djmeyers 0:06ee5f8a484a 1595 common_stub::resource->static_resource_parameters->mode = SN_GRS_STATIC;
djmeyers 0:06ee5f8a484a 1596 m2mbase_stub::mode_value = M2MBase::Static;
djmeyers 0:06ee5f8a484a 1597
djmeyers 0:06ee5f8a484a 1598 m2mresourceinstance_stub::int_value = 2;
djmeyers 0:06ee5f8a484a 1599 m2mresourceinstance_stub::value = value;
djmeyers 0:06ee5f8a484a 1600
djmeyers 0:06ee5f8a484a 1601 nsdl->value_updated(resource_instance,"name/0/name/0");
djmeyers 0:06ee5f8a484a 1602 CHECK(observer->value_update == true);
djmeyers 0:06ee5f8a484a 1603 observer->value_update = false;
djmeyers 0:06ee5f8a484a 1604
djmeyers 0:06ee5f8a484a 1605 m2mbase_stub::is_value_updated_function_set = true;
djmeyers 0:06ee5f8a484a 1606 nsdl->value_updated(resource_instance,"name/0/name/0");
djmeyers 0:06ee5f8a484a 1607 CHECK(observer->value_update == false);
djmeyers 0:06ee5f8a484a 1608 observer->value_update = false;
djmeyers 0:06ee5f8a484a 1609
djmeyers 0:06ee5f8a484a 1610 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1611 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1612
djmeyers 0:06ee5f8a484a 1613 m2mresourceinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1614
djmeyers 0:06ee5f8a484a 1615 free(common_stub::resource->static_resource_parameters->resource);
djmeyers 0:06ee5f8a484a 1616 free(common_stub::resource->static_resource_parameters);
djmeyers 0:06ee5f8a484a 1617 free(common_stub::resource);
djmeyers 0:06ee5f8a484a 1618
djmeyers 0:06ee5f8a484a 1619 common_stub::resource = NULL;
djmeyers 0:06ee5f8a484a 1620 common_stub::clear();
djmeyers 0:06ee5f8a484a 1621
djmeyers 0:06ee5f8a484a 1622 delete resource_instance;
djmeyers 0:06ee5f8a484a 1623 delete resource;
djmeyers 0:06ee5f8a484a 1624 delete object_instance;
djmeyers 0:06ee5f8a484a 1625 delete object;
djmeyers 0:06ee5f8a484a 1626 }
djmeyers 0:06ee5f8a484a 1627
djmeyers 0:06ee5f8a484a 1628
djmeyers 0:06ee5f8a484a 1629 void Test_M2MNsdlInterface::test_find_resource()
djmeyers 0:06ee5f8a484a 1630 {
djmeyers 0:06ee5f8a484a 1631 m2mbase_stub::string_value = "name";
djmeyers 0:06ee5f8a484a 1632 m2mbase_stub::object_instance_name = "name/0";
djmeyers 0:06ee5f8a484a 1633 m2mbase_stub::resource_name_inst = "name/0/resource_name/0";
djmeyers 0:06ee5f8a484a 1634 m2mbase_stub::resource_name = "name/0/resource_name";
djmeyers 0:06ee5f8a484a 1635 m2mbase_stub::find_resource = true;
djmeyers 0:06ee5f8a484a 1636 uint8_t *token = (uint8_t*) malloc(4);
djmeyers 0:06ee5f8a484a 1637 token[0] = 't';
djmeyers 0:06ee5f8a484a 1638 token[1] = 'o';
djmeyers 0:06ee5f8a484a 1639 token[2] = 'k';
djmeyers 0:06ee5f8a484a 1640 token[3] = 'e';
djmeyers 0:06ee5f8a484a 1641 m2mbase_stub::object_token = token;
djmeyers 0:06ee5f8a484a 1642 m2mbase_stub::object_token_len = 4;
djmeyers 0:06ee5f8a484a 1643
djmeyers 0:06ee5f8a484a 1644 uint8_t *inst_token = (uint8_t*) malloc(4);
djmeyers 0:06ee5f8a484a 1645 inst_token[0] = 't';
djmeyers 0:06ee5f8a484a 1646 inst_token[1] = 'o';
djmeyers 0:06ee5f8a484a 1647 inst_token[2] = 'k';
djmeyers 0:06ee5f8a484a 1648 inst_token[3] = 'k';
djmeyers 0:06ee5f8a484a 1649 m2mbase_stub::object_inst_token = inst_token;
djmeyers 0:06ee5f8a484a 1650 m2mbase_stub::object_inst_token_len = 4;
djmeyers 0:06ee5f8a484a 1651
djmeyers 0:06ee5f8a484a 1652 uint8_t *resource_token = (uint8_t*) malloc(4);
djmeyers 0:06ee5f8a484a 1653 resource_token[0] = 't';
djmeyers 0:06ee5f8a484a 1654 resource_token[1] = 'k';
djmeyers 0:06ee5f8a484a 1655 resource_token[2] = 'k';
djmeyers 0:06ee5f8a484a 1656 resource_token[3] = 'k';
djmeyers 0:06ee5f8a484a 1657 m2mbase_stub::resource_token = resource_token;
djmeyers 0:06ee5f8a484a 1658 m2mbase_stub::resource_token_len = 4;
djmeyers 0:06ee5f8a484a 1659
djmeyers 0:06ee5f8a484a 1660 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1661 M2MObjectInstance *object_instance = new M2MObjectInstance(*object,"name/0", "","name/0");
djmeyers 0:06ee5f8a484a 1662 M2MResource *resource = new M2MResource(*object_instance,
djmeyers 0:06ee5f8a484a 1663 "resource_name",
djmeyers 0:06ee5f8a484a 1664 "resource_type",
djmeyers 0:06ee5f8a484a 1665 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1666 false,
djmeyers 0:06ee5f8a484a 1667 "resource_name");
djmeyers 0:06ee5f8a484a 1668
djmeyers 0:06ee5f8a484a 1669 M2MResourceInstance *resource_instance = new M2MResourceInstance(*resource,
djmeyers 0:06ee5f8a484a 1670 "0",
djmeyers 0:06ee5f8a484a 1671 "resource_type",
djmeyers 0:06ee5f8a484a 1672 M2MResourceInstance::INTEGER,0,"0",false);
djmeyers 0:06ee5f8a484a 1673
djmeyers 0:06ee5f8a484a 1674 m2mobjectinstance_stub::base_type = M2MBase::ObjectInstance;
djmeyers 0:06ee5f8a484a 1675 m2mobject_stub::instance_list.push_back(object_instance);
djmeyers 0:06ee5f8a484a 1676 m2mobjectinstance_stub::resource_list.push_back(resource);
djmeyers 0:06ee5f8a484a 1677 m2mresource_stub::list.push_back(resource_instance);
djmeyers 0:06ee5f8a484a 1678 m2mobject_stub::base_type = M2MBase::Object;
djmeyers 0:06ee5f8a484a 1679 nsdl->_object_list.push_back(object);
djmeyers 0:06ee5f8a484a 1680 m2mresource_stub::bool_value = true;
djmeyers 0:06ee5f8a484a 1681 CHECK(nsdl->find_resource("name") == object);
djmeyers 0:06ee5f8a484a 1682 CHECK(nsdl->find_resource("name1") == NULL);
djmeyers 0:06ee5f8a484a 1683 CHECK(nsdl->find_resource("name", token, 4) == object);
djmeyers 0:06ee5f8a484a 1684 CHECK(nsdl->find_resource("name", token, 5) == NULL);
djmeyers 0:06ee5f8a484a 1685
djmeyers 0:06ee5f8a484a 1686 m2mbase_stub::ret_counter = 0;
djmeyers 0:06ee5f8a484a 1687 CHECK(nsdl->find_resource("name/0") == object_instance);
djmeyers 0:06ee5f8a484a 1688 m2mbase_stub::ret_counter = 0;
djmeyers 0:06ee5f8a484a 1689 CHECK(nsdl->find_resource("name/0", inst_token, 4) == object_instance);
djmeyers 0:06ee5f8a484a 1690 m2mbase_stub::ret_counter = 0;
djmeyers 0:06ee5f8a484a 1691
djmeyers 0:06ee5f8a484a 1692 CHECK(nsdl->find_resource("name/0/resource_name") == resource);
djmeyers 0:06ee5f8a484a 1693 m2mbase_stub::ret_counter = 0;
djmeyers 0:06ee5f8a484a 1694 CHECK(nsdl->find_resource("name/0/resource_name", resource_token, 4) == resource);
djmeyers 0:06ee5f8a484a 1695
djmeyers 0:06ee5f8a484a 1696 m2mbase_stub::ret_counter = 0;
djmeyers 0:06ee5f8a484a 1697 CHECK(nsdl->find_resource("name/0/resource_name/0") == resource_instance);
djmeyers 0:06ee5f8a484a 1698
djmeyers 0:06ee5f8a484a 1699 free(token);
djmeyers 0:06ee5f8a484a 1700 free(inst_token);
djmeyers 0:06ee5f8a484a 1701 free(resource_token);
djmeyers 0:06ee5f8a484a 1702
djmeyers 0:06ee5f8a484a 1703 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1704 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1705
djmeyers 0:06ee5f8a484a 1706 m2mresourceinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1707 m2mresource_stub::clear();
djmeyers 0:06ee5f8a484a 1708 m2mobjectinstance_stub::clear();
djmeyers 0:06ee5f8a484a 1709 m2mobject_stub::clear();
djmeyers 0:06ee5f8a484a 1710
djmeyers 0:06ee5f8a484a 1711 delete resource_instance;
djmeyers 0:06ee5f8a484a 1712 delete resource;
djmeyers 0:06ee5f8a484a 1713 delete object_instance;
djmeyers 0:06ee5f8a484a 1714 delete object;
djmeyers 0:06ee5f8a484a 1715 }
djmeyers 0:06ee5f8a484a 1716
djmeyers 0:06ee5f8a484a 1717 void Test_M2MNsdlInterface::test_remove_object()
djmeyers 0:06ee5f8a484a 1718 {
djmeyers 0:06ee5f8a484a 1719 M2MObject *obj = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1720 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 1721
djmeyers 0:06ee5f8a484a 1722 nsdl->remove_object((M2MBase*)obj);
djmeyers 0:06ee5f8a484a 1723
djmeyers 0:06ee5f8a484a 1724 CHECK(nsdl->_object_list.empty() == true);
djmeyers 0:06ee5f8a484a 1725
djmeyers 0:06ee5f8a484a 1726 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 1727 delete obj;
djmeyers 0:06ee5f8a484a 1728 }
djmeyers 0:06ee5f8a484a 1729
djmeyers 0:06ee5f8a484a 1730 void Test_M2MNsdlInterface::test_add_object_to_list()
djmeyers 0:06ee5f8a484a 1731 {
djmeyers 0:06ee5f8a484a 1732 M2MObject *obj = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1733 nsdl->_object_list.push_back(obj);
djmeyers 0:06ee5f8a484a 1734
djmeyers 0:06ee5f8a484a 1735 nsdl->add_object_to_list(obj);
djmeyers 0:06ee5f8a484a 1736 CHECK(nsdl->_object_list.size() == 1);
djmeyers 0:06ee5f8a484a 1737
djmeyers 0:06ee5f8a484a 1738 nsdl->_object_list.clear();
djmeyers 0:06ee5f8a484a 1739 delete obj;
djmeyers 0:06ee5f8a484a 1740 }
djmeyers 0:06ee5f8a484a 1741
djmeyers 0:06ee5f8a484a 1742 void Test_M2MNsdlInterface::test_send_delayed_response()
djmeyers 0:06ee5f8a484a 1743 {
djmeyers 0:06ee5f8a484a 1744 common_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1745 m2mbase_stub::int_value = 0;
djmeyers 0:06ee5f8a484a 1746
djmeyers 0:06ee5f8a484a 1747 M2MObject *object = new M2MObject("name", "name");
djmeyers 0:06ee5f8a484a 1748 M2MObjectInstance* instance = new M2MObjectInstance(*object, "name", "", "");
djmeyers 0:06ee5f8a484a 1749 nsdl->_nsdl_handle = (nsdl_s*)malloc(sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 1750 memset(nsdl->_nsdl_handle,0,sizeof(nsdl_s));
djmeyers 0:06ee5f8a484a 1751
djmeyers 0:06ee5f8a484a 1752 sn_nsdl_oma_server_info_t * nsp_address = (sn_nsdl_oma_server_info_t *)malloc(sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1753 memset(nsp_address,0,sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1754 sn_nsdl_addr_s* address = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1755 memset(address,0,sizeof(sn_nsdl_addr_s));
djmeyers 0:06ee5f8a484a 1756
djmeyers 0:06ee5f8a484a 1757 M2MResource* resource = new M2MResource(*instance,
djmeyers 0:06ee5f8a484a 1758 "name",
djmeyers 0:06ee5f8a484a 1759 "name",
djmeyers 0:06ee5f8a484a 1760 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 1761 false,
djmeyers 0:06ee5f8a484a 1762 "name");
djmeyers 0:06ee5f8a484a 1763
djmeyers 0:06ee5f8a484a 1764 uint8_t val[] = {"name"};
djmeyers 0:06ee5f8a484a 1765 m2mresource_stub::delayed_token = (uint8_t*)malloc(sizeof(val));
djmeyers 0:06ee5f8a484a 1766 memcpy(m2mresource_stub::delayed_token,val,sizeof(val));
djmeyers 0:06ee5f8a484a 1767 m2mresource_stub::delayed_token_len = sizeof(val);
djmeyers 0:06ee5f8a484a 1768
djmeyers 0:06ee5f8a484a 1769 m2mresourceinstance_stub::base_type = M2MBase::Resource;
djmeyers 0:06ee5f8a484a 1770
djmeyers 0:06ee5f8a484a 1771 nsdl->_nsdl_handle->nsp_address_ptr = nsp_address;
djmeyers 0:06ee5f8a484a 1772 memset(nsdl->_nsdl_handle->nsp_address_ptr,0,sizeof(sn_nsdl_oma_server_info_t));
djmeyers 0:06ee5f8a484a 1773 nsdl->_nsdl_handle->nsp_address_ptr->omalw_address_ptr = address;
djmeyers 0:06ee5f8a484a 1774
djmeyers 0:06ee5f8a484a 1775 nsdl->send_delayed_response(resource);
djmeyers 0:06ee5f8a484a 1776
djmeyers 0:06ee5f8a484a 1777 free(nsp_address);
djmeyers 0:06ee5f8a484a 1778 free(address);
djmeyers 0:06ee5f8a484a 1779 free(nsdl->_nsdl_handle);
djmeyers 0:06ee5f8a484a 1780
djmeyers 0:06ee5f8a484a 1781 delete object;
djmeyers 0:06ee5f8a484a 1782 delete instance;
djmeyers 0:06ee5f8a484a 1783 delete resource;
djmeyers 0:06ee5f8a484a 1784 free(m2mresource_stub::delayed_token);
djmeyers 0:06ee5f8a484a 1785 m2mresource_stub::delayed_token = NULL;
djmeyers 0:06ee5f8a484a 1786 m2mresource_stub::delayed_token_len = 0;
djmeyers 0:06ee5f8a484a 1787 }
djmeyers 0:06ee5f8a484a 1788
djmeyers 0:06ee5f8a484a 1789 void Test_M2MNsdlInterface::test_get_nsdl_handle()
djmeyers 0:06ee5f8a484a 1790 {
djmeyers 0:06ee5f8a484a 1791 CHECK(nsdl->get_nsdl_handle() == nsdl->_nsdl_handle);
djmeyers 0:06ee5f8a484a 1792 }
djmeyers 0:06ee5f8a484a 1793
djmeyers 0:06ee5f8a484a 1794 void Test_M2MNsdlInterface::test_endpoint_name()
djmeyers 0:06ee5f8a484a 1795 {
djmeyers 0:06ee5f8a484a 1796 String endpoint = "test";
djmeyers 0:06ee5f8a484a 1797 nsdl->_endpoint_name = endpoint;
djmeyers 0:06ee5f8a484a 1798 CHECK(nsdl->endpoint_name() == endpoint);
djmeyers 0:06ee5f8a484a 1799 }