FRDM K64F Metronome

Committer:
ram54288
Date:
Sun May 14 18:37:05 2017 +0000
Revision:
0:dbad57390bd1
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:dbad57390bd1 1 /*
ram54288 0:dbad57390bd1 2 * Copyright (c) 2015 ARM Limited. All rights reserved.
ram54288 0:dbad57390bd1 3 * SPDX-License-Identifier: Apache-2.0
ram54288 0:dbad57390bd1 4 * Licensed under the Apache License, Version 2.0 (the License); you may
ram54288 0:dbad57390bd1 5 * not use this file except in compliance with the License.
ram54288 0:dbad57390bd1 6 * You may obtain a copy of the License at
ram54288 0:dbad57390bd1 7 *
ram54288 0:dbad57390bd1 8 * http://www.apache.org/licenses/LICENSE-2.0
ram54288 0:dbad57390bd1 9 *
ram54288 0:dbad57390bd1 10 * Unless required by applicable law or agreed to in writing, software
ram54288 0:dbad57390bd1 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
ram54288 0:dbad57390bd1 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ram54288 0:dbad57390bd1 13 * See the License for the specific language governing permissions and
ram54288 0:dbad57390bd1 14 * limitations under the License.
ram54288 0:dbad57390bd1 15 */
ram54288 0:dbad57390bd1 16 #include "CppUTest/TestHarness.h"
ram54288 0:dbad57390bd1 17 #include "test_m2mobject.h"
ram54288 0:dbad57390bd1 18 #include "m2mobjectinstance_stub.h"
ram54288 0:dbad57390bd1 19 #include "m2mresource_stub.h"
ram54288 0:dbad57390bd1 20 #include "m2mbase_stub.h"
ram54288 0:dbad57390bd1 21 #include "common_stub.h"
ram54288 0:dbad57390bd1 22 #include "m2mtlvdeserializer_stub.h"
ram54288 0:dbad57390bd1 23 #include "m2mtlvserializer_stub.h"
ram54288 0:dbad57390bd1 24 #include "m2mreporthandler_stub.h"
ram54288 0:dbad57390bd1 25 #include "nsdlaccesshelper_stub.h"
ram54288 0:dbad57390bd1 26
ram54288 0:dbad57390bd1 27 class TestReportObserver : public M2MReportObserver{
ram54288 0:dbad57390bd1 28 public :
ram54288 0:dbad57390bd1 29 TestReportObserver() {}
ram54288 0:dbad57390bd1 30 ~TestReportObserver() {}
ram54288 0:dbad57390bd1 31 void observation_to_be_sent(m2m::Vector<uint16_t>,bool){ }
ram54288 0:dbad57390bd1 32 };
ram54288 0:dbad57390bd1 33
ram54288 0:dbad57390bd1 34 class Handler : public M2MObservationHandler {
ram54288 0:dbad57390bd1 35
ram54288 0:dbad57390bd1 36 public:
ram54288 0:dbad57390bd1 37
ram54288 0:dbad57390bd1 38 Handler(){}
ram54288 0:dbad57390bd1 39 ~Handler(){}
ram54288 0:dbad57390bd1 40 void observation_to_be_sent(M2MBase *, uint16_t, m2m::Vector<uint16_t>,bool){
ram54288 0:dbad57390bd1 41 visited = true;
ram54288 0:dbad57390bd1 42 }
ram54288 0:dbad57390bd1 43 void send_delayed_response(M2MBase *){}
ram54288 0:dbad57390bd1 44 void resource_to_be_deleted(M2MBase *){visited=true;}
ram54288 0:dbad57390bd1 45 void remove_object(M2MBase *){visited = true;}
ram54288 0:dbad57390bd1 46 void value_updated(M2MBase *,const String&){visited = true;}
ram54288 0:dbad57390bd1 47
ram54288 0:dbad57390bd1 48 void clear() {visited = false;}
ram54288 0:dbad57390bd1 49 bool visited;
ram54288 0:dbad57390bd1 50 };
ram54288 0:dbad57390bd1 51
ram54288 0:dbad57390bd1 52 Test_M2MObject::Test_M2MObject()
ram54288 0:dbad57390bd1 53 {
ram54288 0:dbad57390bd1 54 handler = new Handler();
ram54288 0:dbad57390bd1 55 object = new M2MObject("name", "name");
ram54288 0:dbad57390bd1 56 }
ram54288 0:dbad57390bd1 57
ram54288 0:dbad57390bd1 58 Test_M2MObject::~Test_M2MObject()
ram54288 0:dbad57390bd1 59 {
ram54288 0:dbad57390bd1 60 m2mobjectinstance_stub::clear();
ram54288 0:dbad57390bd1 61 m2mresource_stub::clear();
ram54288 0:dbad57390bd1 62 m2mbase_stub::clear();
ram54288 0:dbad57390bd1 63 m2mtlvdeserializer_stub::clear();
ram54288 0:dbad57390bd1 64 m2mtlvserializer_stub::clear();
ram54288 0:dbad57390bd1 65 delete object;
ram54288 0:dbad57390bd1 66 delete handler;
ram54288 0:dbad57390bd1 67 }
ram54288 0:dbad57390bd1 68
ram54288 0:dbad57390bd1 69 void Test_M2MObject::test_ctor()
ram54288 0:dbad57390bd1 70 {
ram54288 0:dbad57390bd1 71 M2MObject *object = new M2MObject(&params);
ram54288 0:dbad57390bd1 72 delete object;
ram54288 0:dbad57390bd1 73 }
ram54288 0:dbad57390bd1 74
ram54288 0:dbad57390bd1 75 void Test_M2MObject::test_create_object_instance()
ram54288 0:dbad57390bd1 76 {
ram54288 0:dbad57390bd1 77 m2mbase_stub::name_id_value = 1;
ram54288 0:dbad57390bd1 78 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 79 CHECK(object->create_object_instance() != NULL);
ram54288 0:dbad57390bd1 80 CHECK(object->create_object_instance(&params) != NULL);
ram54288 0:dbad57390bd1 81 }
ram54288 0:dbad57390bd1 82
ram54288 0:dbad57390bd1 83 void Test_M2MObject::test_remove_object_instance()
ram54288 0:dbad57390bd1 84 {
ram54288 0:dbad57390bd1 85 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 86
ram54288 0:dbad57390bd1 87 M2MObjectInstance *ins = new M2MObjectInstance(*object,"name","type", "");
ram54288 0:dbad57390bd1 88 object->set_instance_id(0);
ram54288 0:dbad57390bd1 89 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 90
ram54288 0:dbad57390bd1 91 CHECK(true == object->remove_object_instance(0));
ram54288 0:dbad57390bd1 92
ram54288 0:dbad57390bd1 93 CHECK(false == object->remove_object_instance(0));
ram54288 0:dbad57390bd1 94 }
ram54288 0:dbad57390bd1 95
ram54288 0:dbad57390bd1 96 void Test_M2MObject::test_object_instance()
ram54288 0:dbad57390bd1 97 {
ram54288 0:dbad57390bd1 98 M2MObjectInstance *ins = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 99 object->set_instance_id(0);
ram54288 0:dbad57390bd1 100 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 101
ram54288 0:dbad57390bd1 102 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 103
ram54288 0:dbad57390bd1 104 M2MObjectInstance *obj = object->object_instance(0);
ram54288 0:dbad57390bd1 105
ram54288 0:dbad57390bd1 106 CHECK(obj != NULL);
ram54288 0:dbad57390bd1 107 STRCMP_EQUAL(obj->name(), "name");
ram54288 0:dbad57390bd1 108 //CHECK(0 == obj->name().compare(0,test->size(),*test));
ram54288 0:dbad57390bd1 109 }
ram54288 0:dbad57390bd1 110
ram54288 0:dbad57390bd1 111 void Test_M2MObject::test_instances()
ram54288 0:dbad57390bd1 112 {
ram54288 0:dbad57390bd1 113
ram54288 0:dbad57390bd1 114 M2MObjectInstance *ins = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 115 ins->set_instance_id(0);
ram54288 0:dbad57390bd1 116 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 117
ram54288 0:dbad57390bd1 118 M2MObjectInstance *ins1 = new M2MObjectInstance(*object, "name","type", "");
ram54288 0:dbad57390bd1 119 ins1->set_instance_id(1);
ram54288 0:dbad57390bd1 120 object->_instance_list.push_back(ins1);
ram54288 0:dbad57390bd1 121
ram54288 0:dbad57390bd1 122 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 123
ram54288 0:dbad57390bd1 124 M2MObjectInstanceList list = object->instances();
ram54288 0:dbad57390bd1 125
ram54288 0:dbad57390bd1 126 M2MObjectInstance *obj = list[0];
ram54288 0:dbad57390bd1 127 CHECK(2 == list.size());
ram54288 0:dbad57390bd1 128 STRCMP_EQUAL(obj->name(), "name");
ram54288 0:dbad57390bd1 129 //CHECK(0 == obj->name().compare(0,test->size(),*test));
ram54288 0:dbad57390bd1 130 }
ram54288 0:dbad57390bd1 131
ram54288 0:dbad57390bd1 132 void Test_M2MObject::test_instance_count()
ram54288 0:dbad57390bd1 133 {
ram54288 0:dbad57390bd1 134 M2MObjectInstance *ins = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 135 object->set_instance_id(0);
ram54288 0:dbad57390bd1 136 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 137
ram54288 0:dbad57390bd1 138 M2MObjectInstance *ins1 = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 139 object->set_instance_id(1);
ram54288 0:dbad57390bd1 140 object->_instance_list.push_back(ins1);
ram54288 0:dbad57390bd1 141
ram54288 0:dbad57390bd1 142 CHECK(2 == object->instance_count());
ram54288 0:dbad57390bd1 143
ram54288 0:dbad57390bd1 144 object->_instance_list.clear();
ram54288 0:dbad57390bd1 145 delete ins;
ram54288 0:dbad57390bd1 146 delete ins1;
ram54288 0:dbad57390bd1 147 }
ram54288 0:dbad57390bd1 148
ram54288 0:dbad57390bd1 149 void Test_M2MObject::test_base_type()
ram54288 0:dbad57390bd1 150 {
ram54288 0:dbad57390bd1 151 CHECK(M2MBase::Object == object->base_type());
ram54288 0:dbad57390bd1 152 }
ram54288 0:dbad57390bd1 153
ram54288 0:dbad57390bd1 154 void Test_M2MObject::test_handle_get_request()
ram54288 0:dbad57390bd1 155 {
ram54288 0:dbad57390bd1 156 M2MObjectInstance *ins = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 157 object->set_instance_id(0);
ram54288 0:dbad57390bd1 158 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 159
ram54288 0:dbad57390bd1 160 uint8_t value[] = {"name"};
ram54288 0:dbad57390bd1 161 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 162 memset(coap_header, 0, sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 163
ram54288 0:dbad57390bd1 164 coap_header->uri_path_ptr = value;
ram54288 0:dbad57390bd1 165 coap_header->uri_path_len = sizeof(value);
ram54288 0:dbad57390bd1 166
ram54288 0:dbad57390bd1 167 coap_header->msg_code = COAP_MSG_CODE_REQUEST_GET;
ram54288 0:dbad57390bd1 168
ram54288 0:dbad57390bd1 169 common_stub::int_value = 0;
ram54288 0:dbad57390bd1 170 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 171
ram54288 0:dbad57390bd1 172 m2mbase_stub::operation = M2MBase::GET_ALLOWED;
ram54288 0:dbad57390bd1 173 m2mbase_stub::uint8_value = 200;
ram54288 0:dbad57390bd1 174
ram54288 0:dbad57390bd1 175 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 176 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 177 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
ram54288 0:dbad57390bd1 178 m2mtlvserializer_stub::uint8_value = (uint8_t*)malloc(1);
ram54288 0:dbad57390bd1 179
ram54288 0:dbad57390bd1 180 coap_header->token_ptr = (uint8_t*)malloc(sizeof(value));
ram54288 0:dbad57390bd1 181 memcpy(coap_header->token_ptr, value, sizeof(value));
ram54288 0:dbad57390bd1 182
ram54288 0:dbad57390bd1 183 coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
ram54288 0:dbad57390bd1 184 coap_header->options_list_ptr->observe = 0;
ram54288 0:dbad57390bd1 185
ram54288 0:dbad57390bd1 186 coap_header->content_format = sn_coap_content_format_e(110);
ram54288 0:dbad57390bd1 187
ram54288 0:dbad57390bd1 188 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 189
ram54288 0:dbad57390bd1 190 // Not OMA TLV or JSON
ram54288 0:dbad57390bd1 191 m2mbase_stub::uint8_value = 110;
ram54288 0:dbad57390bd1 192 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 193
ram54288 0:dbad57390bd1 194 // Content type set CT_NONE
ram54288 0:dbad57390bd1 195 m2mbase_stub::uint8_value = 99;
ram54288 0:dbad57390bd1 196 coap_header->content_format = sn_coap_content_format_e(-1);
ram54288 0:dbad57390bd1 197 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 198
ram54288 0:dbad57390bd1 199 common_stub::coap_header->content_format = sn_coap_content_format_e(-1); // CT_NONE
ram54288 0:dbad57390bd1 200 m2mbase_stub::uint8_value = 100;
ram54288 0:dbad57390bd1 201 coap_header->content_format = sn_coap_content_format_e(-1);
ram54288 0:dbad57390bd1 202 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 203
ram54288 0:dbad57390bd1 204 // OMA TLV
ram54288 0:dbad57390bd1 205 coap_header->content_format = sn_coap_content_format_e(99);
ram54288 0:dbad57390bd1 206 m2mbase_stub::uint8_value = 99;
ram54288 0:dbad57390bd1 207 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 208
ram54288 0:dbad57390bd1 209 // OMA JSON
ram54288 0:dbad57390bd1 210 coap_header->content_format = sn_coap_content_format_e(100);
ram54288 0:dbad57390bd1 211 m2mbase_stub::uint8_value = 100;
ram54288 0:dbad57390bd1 212 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 213
ram54288 0:dbad57390bd1 214 coap_header->options_list_ptr->observe = 0;
ram54288 0:dbad57390bd1 215 m2mbase_stub::uint16_value = 0x1c1c;
ram54288 0:dbad57390bd1 216 m2mbase_stub::uint8_value = 99;
ram54288 0:dbad57390bd1 217 m2mbase_stub::bool_value = true;
ram54288 0:dbad57390bd1 218 coap_header->content_format = sn_coap_content_format_e(99);
ram54288 0:dbad57390bd1 219
ram54288 0:dbad57390bd1 220 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 221
ram54288 0:dbad57390bd1 222 m2mbase_stub::uint16_value = 10;
ram54288 0:dbad57390bd1 223 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 224
ram54288 0:dbad57390bd1 225 // Not observable
ram54288 0:dbad57390bd1 226 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 227 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 228
ram54288 0:dbad57390bd1 229 m2mbase_stub::bool_value = true;
ram54288 0:dbad57390bd1 230 coap_header->options_list_ptr->observe = 0;
ram54288 0:dbad57390bd1 231
ram54288 0:dbad57390bd1 232 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 233
ram54288 0:dbad57390bd1 234 coap_header->options_list_ptr->observe = 1;
ram54288 0:dbad57390bd1 235 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 236
ram54288 0:dbad57390bd1 237 m2mbase_stub::operation = M2MBase::NOT_ALLOWED;
ram54288 0:dbad57390bd1 238 CHECK(object->handle_get_request(NULL,coap_header,handler) != NULL);
ram54288 0:dbad57390bd1 239
ram54288 0:dbad57390bd1 240 CHECK(object->handle_get_request(NULL,NULL,handler) != NULL);
ram54288 0:dbad57390bd1 241
ram54288 0:dbad57390bd1 242 if(coap_header->token_ptr) {
ram54288 0:dbad57390bd1 243 free(coap_header->token_ptr);
ram54288 0:dbad57390bd1 244 coap_header->token_ptr = NULL;
ram54288 0:dbad57390bd1 245 }
ram54288 0:dbad57390bd1 246 if(coap_header->options_list_ptr) {
ram54288 0:dbad57390bd1 247 free(coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 248 coap_header->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 249 }
ram54288 0:dbad57390bd1 250
ram54288 0:dbad57390bd1 251 if(common_stub::coap_header){
ram54288 0:dbad57390bd1 252 if(common_stub::coap_header->options_list_ptr) {
ram54288 0:dbad57390bd1 253 free(common_stub::coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 254 common_stub::coap_header->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 255 }
ram54288 0:dbad57390bd1 256 free(common_stub::coap_header);
ram54288 0:dbad57390bd1 257 common_stub::coap_header = NULL;
ram54288 0:dbad57390bd1 258 }
ram54288 0:dbad57390bd1 259 free(coap_header);
ram54288 0:dbad57390bd1 260 coap_header = NULL;
ram54288 0:dbad57390bd1 261
ram54288 0:dbad57390bd1 262 if(m2mtlvserializer_stub::uint8_value) {
ram54288 0:dbad57390bd1 263 free(m2mtlvserializer_stub::uint8_value);
ram54288 0:dbad57390bd1 264 }
ram54288 0:dbad57390bd1 265 m2mtlvserializer_stub::clear();
ram54288 0:dbad57390bd1 266
ram54288 0:dbad57390bd1 267 m2mbase_stub::clear();
ram54288 0:dbad57390bd1 268 common_stub::clear();
ram54288 0:dbad57390bd1 269
ram54288 0:dbad57390bd1 270 object->_instance_list.clear();
ram54288 0:dbad57390bd1 271 delete ins;
ram54288 0:dbad57390bd1 272 }
ram54288 0:dbad57390bd1 273
ram54288 0:dbad57390bd1 274 void Test_M2MObject::test_handle_put_request()
ram54288 0:dbad57390bd1 275 {
ram54288 0:dbad57390bd1 276 uint8_t value[] = {"name"};
ram54288 0:dbad57390bd1 277 bool execute_value_updated = false;
ram54288 0:dbad57390bd1 278 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 279 memset(coap_header, 0, sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 280 sn_coap_hdr_s * coap_response = NULL;
ram54288 0:dbad57390bd1 281
ram54288 0:dbad57390bd1 282 coap_header->uri_path_ptr = value;
ram54288 0:dbad57390bd1 283 coap_header->uri_path_len = sizeof(value);
ram54288 0:dbad57390bd1 284
ram54288 0:dbad57390bd1 285 coap_header->msg_code = COAP_MSG_CODE_REQUEST_PUT;
ram54288 0:dbad57390bd1 286
ram54288 0:dbad57390bd1 287 common_stub::int_value = 0;
ram54288 0:dbad57390bd1 288 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 289
ram54288 0:dbad57390bd1 290 m2mbase_stub::operation = M2MBase::PUT_ALLOWED;
ram54288 0:dbad57390bd1 291 m2mbase_stub::uint8_value = 200;
ram54288 0:dbad57390bd1 292
ram54288 0:dbad57390bd1 293 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 294 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 295
ram54288 0:dbad57390bd1 296 coap_header->payload_ptr = (uint8_t*)malloc(1);
ram54288 0:dbad57390bd1 297
ram54288 0:dbad57390bd1 298 CHECK(object->handle_put_request(NULL,coap_header,handler,execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 299 free(coap_header->payload_ptr);
ram54288 0:dbad57390bd1 300 coap_header->payload_ptr = NULL;
ram54288 0:dbad57390bd1 301
ram54288 0:dbad57390bd1 302 CHECK(object->handle_put_request(NULL,coap_header,handler,execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 303
ram54288 0:dbad57390bd1 304 coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
ram54288 0:dbad57390bd1 305 coap_header->options_list_ptr->uri_query_ptr = value;
ram54288 0:dbad57390bd1 306 coap_header->options_list_ptr->uri_query_len = sizeof(value);
ram54288 0:dbad57390bd1 307
ram54288 0:dbad57390bd1 308 coap_header->content_format = sn_coap_content_format_e(99);
ram54288 0:dbad57390bd1 309 m2mtlvdeserializer_stub::bool_value = true;
ram54288 0:dbad57390bd1 310
ram54288 0:dbad57390bd1 311 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 312
ram54288 0:dbad57390bd1 313 CHECK(object->handle_put_request(NULL,coap_header,handler,execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 314
ram54288 0:dbad57390bd1 315 m2mtlvdeserializer_stub::bool_value = false;
ram54288 0:dbad57390bd1 316
ram54288 0:dbad57390bd1 317 CHECK(object->handle_put_request(NULL,coap_header,handler, execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 318
ram54288 0:dbad57390bd1 319 coap_header->content_format = sn_coap_content_format_e(100);
ram54288 0:dbad57390bd1 320
ram54288 0:dbad57390bd1 321 CHECK(object->handle_put_request(NULL,coap_header,handler, execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 322
ram54288 0:dbad57390bd1 323 m2mbase_stub::bool_value = true;
ram54288 0:dbad57390bd1 324
ram54288 0:dbad57390bd1 325 CHECK(object->handle_put_request(NULL,coap_header,handler, execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 326
ram54288 0:dbad57390bd1 327 m2mbase_stub::operation = M2MBase::NOT_ALLOWED;
ram54288 0:dbad57390bd1 328
ram54288 0:dbad57390bd1 329 CHECK(object->handle_put_request(NULL,coap_header,handler, execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 330
ram54288 0:dbad57390bd1 331 CHECK(object->handle_put_request(NULL,NULL,handler, execute_value_updated) != NULL);
ram54288 0:dbad57390bd1 332
ram54288 0:dbad57390bd1 333 m2mbase_stub::operation = M2MBase::PUT_ALLOWED;
ram54288 0:dbad57390bd1 334
ram54288 0:dbad57390bd1 335 free(coap_header->payload_ptr);
ram54288 0:dbad57390bd1 336 coap_header->payload_ptr = NULL;
ram54288 0:dbad57390bd1 337 coap_response = object->handle_put_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 338 CHECK(coap_response != NULL);
ram54288 0:dbad57390bd1 339 CHECK(coap_response->msg_code == COAP_MSG_CODE_RESPONSE_CHANGED);
ram54288 0:dbad57390bd1 340
ram54288 0:dbad57390bd1 341 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 342 coap_response = object->handle_put_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 343 CHECK(coap_response != NULL);
ram54288 0:dbad57390bd1 344 CHECK(coap_response->msg_code == COAP_MSG_CODE_RESPONSE_BAD_REQUEST);
ram54288 0:dbad57390bd1 345
ram54288 0:dbad57390bd1 346 free(coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 347 coap_header->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 348 coap_response = object->handle_put_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 349 CHECK(coap_response != NULL);
ram54288 0:dbad57390bd1 350 CHECK(coap_response->msg_code == COAP_MSG_CODE_RESPONSE_BAD_REQUEST);
ram54288 0:dbad57390bd1 351
ram54288 0:dbad57390bd1 352 free(coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 353 free(common_stub::coap_header);
ram54288 0:dbad57390bd1 354 free(coap_header);
ram54288 0:dbad57390bd1 355
ram54288 0:dbad57390bd1 356 m2mtlvdeserializer_stub::clear();
ram54288 0:dbad57390bd1 357 common_stub::clear();
ram54288 0:dbad57390bd1 358 m2mbase_stub::clear();
ram54288 0:dbad57390bd1 359 }
ram54288 0:dbad57390bd1 360
ram54288 0:dbad57390bd1 361 void Test_M2MObject::test_handle_post_request()
ram54288 0:dbad57390bd1 362 {
ram54288 0:dbad57390bd1 363 uint8_t value[] = {"name"};
ram54288 0:dbad57390bd1 364 bool execute_value_updated = false;
ram54288 0:dbad57390bd1 365 sn_coap_hdr_s *coap_header = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 366 memset(coap_header, 0, sizeof(sn_coap_hdr_s));
ram54288 0:dbad57390bd1 367
ram54288 0:dbad57390bd1 368 coap_header->uri_path_ptr = value;
ram54288 0:dbad57390bd1 369 coap_header->uri_path_len = sizeof(value);
ram54288 0:dbad57390bd1 370
ram54288 0:dbad57390bd1 371 coap_header->msg_code = COAP_MSG_CODE_REQUEST_POST;
ram54288 0:dbad57390bd1 372
ram54288 0:dbad57390bd1 373 common_stub::int_value = 0;
ram54288 0:dbad57390bd1 374 m2mbase_stub::string_value = "name";
ram54288 0:dbad57390bd1 375
ram54288 0:dbad57390bd1 376 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 377 m2mbase_stub::uint8_value = 200;
ram54288 0:dbad57390bd1 378
ram54288 0:dbad57390bd1 379 common_stub::coap_header = (sn_coap_hdr_ *)malloc(sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 380 memset(common_stub::coap_header,0,sizeof(sn_coap_hdr_));
ram54288 0:dbad57390bd1 381 common_stub::coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
ram54288 0:dbad57390bd1 382
ram54288 0:dbad57390bd1 383 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 384
ram54288 0:dbad57390bd1 385 sn_coap_hdr_s * coap_response = NULL;
ram54288 0:dbad57390bd1 386 m2mbase_stub::uint8_value = 99;
ram54288 0:dbad57390bd1 387
ram54288 0:dbad57390bd1 388 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 389 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 390
ram54288 0:dbad57390bd1 391
ram54288 0:dbad57390bd1 392 m2mbase_stub::uint8_value = 100;
ram54288 0:dbad57390bd1 393
ram54288 0:dbad57390bd1 394 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 395 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 396
ram54288 0:dbad57390bd1 397 coap_header->payload_ptr = (uint8_t*)malloc(1);
ram54288 0:dbad57390bd1 398
ram54288 0:dbad57390bd1 399 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 400 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 401
ram54288 0:dbad57390bd1 402 m2mbase_stub::uint8_value = 99;
ram54288 0:dbad57390bd1 403
ram54288 0:dbad57390bd1 404 object->_max_instance_count = 0;
ram54288 0:dbad57390bd1 405
ram54288 0:dbad57390bd1 406 M2MObjectInstance *ins = new M2MObjectInstance(*object, "name", "type", "");
ram54288 0:dbad57390bd1 407 ins->set_instance_id(0);
ram54288 0:dbad57390bd1 408 object->_instance_list.push_back(ins);
ram54288 0:dbad57390bd1 409 coap_header->content_format = sn_coap_content_format_e(-1);
ram54288 0:dbad57390bd1 410 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 411 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 412
ram54288 0:dbad57390bd1 413 object->remove_object_instance(0);
ram54288 0:dbad57390bd1 414
ram54288 0:dbad57390bd1 415
ram54288 0:dbad57390bd1 416 object->_max_instance_count = 65535;
ram54288 0:dbad57390bd1 417
ram54288 0:dbad57390bd1 418 m2mbase_stub::uint8_value = 0;
ram54288 0:dbad57390bd1 419
ram54288 0:dbad57390bd1 420 coap_header->options_list_ptr = (sn_coap_options_list_s*)malloc(sizeof(sn_coap_options_list_s));
ram54288 0:dbad57390bd1 421 coap_header->options_list_ptr->uri_query_ptr = value;
ram54288 0:dbad57390bd1 422 coap_header->options_list_ptr->uri_query_len = sizeof(value);
ram54288 0:dbad57390bd1 423
ram54288 0:dbad57390bd1 424 coap_header->content_format = sn_coap_content_format_e(99);
ram54288 0:dbad57390bd1 425 m2mtlvdeserializer_stub::is_object_bool_value = true;
ram54288 0:dbad57390bd1 426 m2mtlvdeserializer_stub::bool_value = false;
ram54288 0:dbad57390bd1 427 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 428
ram54288 0:dbad57390bd1 429 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::None;
ram54288 0:dbad57390bd1 430 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 431
ram54288 0:dbad57390bd1 432 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 433 if(coap_response) {
ram54288 0:dbad57390bd1 434 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 435 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 436 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 437 }
ram54288 0:dbad57390bd1 438 // if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 439 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 440 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 441 // }
ram54288 0:dbad57390bd1 442 }
ram54288 0:dbad57390bd1 443
ram54288 0:dbad57390bd1 444 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 445 m2mtlvdeserializer_stub::is_object_bool_value = true;
ram54288 0:dbad57390bd1 446 m2mtlvdeserializer_stub::bool_value = false;
ram54288 0:dbad57390bd1 447 m2mtlvdeserializer_stub::int_value = 10;
ram54288 0:dbad57390bd1 448 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 449
ram54288 0:dbad57390bd1 450 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::NotAllowed;
ram54288 0:dbad57390bd1 451
ram54288 0:dbad57390bd1 452 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 453
ram54288 0:dbad57390bd1 454 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 455 if(coap_response) {
ram54288 0:dbad57390bd1 456 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 457 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 458 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 459 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 460 }
ram54288 0:dbad57390bd1 461 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 462 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 463 }
ram54288 0:dbad57390bd1 464 }
ram54288 0:dbad57390bd1 465
ram54288 0:dbad57390bd1 466 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 467 m2mtlvdeserializer_stub::is_object_bool_value = false;
ram54288 0:dbad57390bd1 468 m2mtlvdeserializer_stub::bool_value = true;
ram54288 0:dbad57390bd1 469 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 470 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::None;
ram54288 0:dbad57390bd1 471
ram54288 0:dbad57390bd1 472 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 473
ram54288 0:dbad57390bd1 474 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 475 if(coap_response) {
ram54288 0:dbad57390bd1 476 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 477 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 478 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 479 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 480 }
ram54288 0:dbad57390bd1 481 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 482 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 483 }
ram54288 0:dbad57390bd1 484 }
ram54288 0:dbad57390bd1 485
ram54288 0:dbad57390bd1 486 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 487 m2mtlvdeserializer_stub::is_object_bool_value = false;
ram54288 0:dbad57390bd1 488 m2mtlvdeserializer_stub::bool_value = true;
ram54288 0:dbad57390bd1 489 m2mbase_stub::bool_value = false;
ram54288 0:dbad57390bd1 490 m2mtlvdeserializer_stub::error = M2MTLVDeserializer::NotFound;
ram54288 0:dbad57390bd1 491
ram54288 0:dbad57390bd1 492 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 493
ram54288 0:dbad57390bd1 494 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 495 if(coap_response) {
ram54288 0:dbad57390bd1 496 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 497 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 498 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 499 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 500 }
ram54288 0:dbad57390bd1 501 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 502 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 503 }
ram54288 0:dbad57390bd1 504 }
ram54288 0:dbad57390bd1 505
ram54288 0:dbad57390bd1 506 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 507 m2mtlvdeserializer_stub::bool_value = false;
ram54288 0:dbad57390bd1 508
ram54288 0:dbad57390bd1 509 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 510
ram54288 0:dbad57390bd1 511 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 512 if(coap_response) {
ram54288 0:dbad57390bd1 513 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 514 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 515 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 516 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 517 }
ram54288 0:dbad57390bd1 518 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 519 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 520 }
ram54288 0:dbad57390bd1 521 }
ram54288 0:dbad57390bd1 522
ram54288 0:dbad57390bd1 523
ram54288 0:dbad57390bd1 524 coap_header->content_format = sn_coap_content_format_e(100);
ram54288 0:dbad57390bd1 525
ram54288 0:dbad57390bd1 526 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 527
ram54288 0:dbad57390bd1 528 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 529 if(coap_response) {
ram54288 0:dbad57390bd1 530 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 531 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 532 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 533 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 534 }
ram54288 0:dbad57390bd1 535 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 536 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 537 }
ram54288 0:dbad57390bd1 538 }
ram54288 0:dbad57390bd1 539
ram54288 0:dbad57390bd1 540
ram54288 0:dbad57390bd1 541 m2mbase_stub::bool_value = true;
ram54288 0:dbad57390bd1 542
ram54288 0:dbad57390bd1 543 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 544
ram54288 0:dbad57390bd1 545 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 546 if(coap_response) {
ram54288 0:dbad57390bd1 547 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 548 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 549 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 550 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 551 }
ram54288 0:dbad57390bd1 552 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 553 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 554 }
ram54288 0:dbad57390bd1 555 }
ram54288 0:dbad57390bd1 556
ram54288 0:dbad57390bd1 557
ram54288 0:dbad57390bd1 558 m2mbase_stub::operation = M2MBase::NOT_ALLOWED;
ram54288 0:dbad57390bd1 559
ram54288 0:dbad57390bd1 560 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 561
ram54288 0:dbad57390bd1 562 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 563
ram54288 0:dbad57390bd1 564 coap_response = object->handle_post_request(NULL,NULL,handler,execute_value_updated);
ram54288 0:dbad57390bd1 565
ram54288 0:dbad57390bd1 566 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 567 if(coap_response) {
ram54288 0:dbad57390bd1 568 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 569 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 570 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 571 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 572 }
ram54288 0:dbad57390bd1 573 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 574 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 575 }
ram54288 0:dbad57390bd1 576 }
ram54288 0:dbad57390bd1 577
ram54288 0:dbad57390bd1 578 m2mbase_stub::operation = M2MBase::POST_ALLOWED;
ram54288 0:dbad57390bd1 579 m2mtlvdeserializer_stub::int_value = 0;
ram54288 0:dbad57390bd1 580 m2mtlvdeserializer_stub::is_object_bool_value = true;
ram54288 0:dbad57390bd1 581 coap_header->content_format = sn_coap_content_format_e(99);
ram54288 0:dbad57390bd1 582 coap_response = object->handle_post_request(NULL,coap_header,handler,execute_value_updated);
ram54288 0:dbad57390bd1 583
ram54288 0:dbad57390bd1 584 CHECK( coap_response != NULL);
ram54288 0:dbad57390bd1 585 if(coap_response) {
ram54288 0:dbad57390bd1 586 if (coap_response->options_list_ptr) {
ram54288 0:dbad57390bd1 587 if (coap_response->options_list_ptr->location_path_ptr) {
ram54288 0:dbad57390bd1 588 free(coap_response->options_list_ptr->location_path_ptr);
ram54288 0:dbad57390bd1 589 coap_response->options_list_ptr->location_path_ptr = NULL;
ram54288 0:dbad57390bd1 590 }
ram54288 0:dbad57390bd1 591 // free(coap_response->options_list_ptr);
ram54288 0:dbad57390bd1 592 // coap_response->options_list_ptr = NULL;
ram54288 0:dbad57390bd1 593 }
ram54288 0:dbad57390bd1 594 }
ram54288 0:dbad57390bd1 595
ram54288 0:dbad57390bd1 596 free(coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 597 free(coap_header->payload_ptr);
ram54288 0:dbad57390bd1 598 free(common_stub::coap_header->options_list_ptr);
ram54288 0:dbad57390bd1 599 free(common_stub::coap_header);
ram54288 0:dbad57390bd1 600 free(coap_header);
ram54288 0:dbad57390bd1 601
ram54288 0:dbad57390bd1 602 m2mtlvdeserializer_stub::clear();
ram54288 0:dbad57390bd1 603 common_stub::clear();
ram54288 0:dbad57390bd1 604 m2mbase_stub::clear();
ram54288 0:dbad57390bd1 605 }
ram54288 0:dbad57390bd1 606
ram54288 0:dbad57390bd1 607 void Test_M2MObject::test_notification_update()
ram54288 0:dbad57390bd1 608 {
ram54288 0:dbad57390bd1 609 TestReportObserver obs;
ram54288 0:dbad57390bd1 610 m2mbase_stub::report = new M2MReportHandler(obs);
ram54288 0:dbad57390bd1 611 m2mbase_stub::bool_value = true;
ram54288 0:dbad57390bd1 612
ram54288 0:dbad57390bd1 613 object->notification_update(0);
ram54288 0:dbad57390bd1 614
ram54288 0:dbad57390bd1 615 delete m2mbase_stub::report;
ram54288 0:dbad57390bd1 616 m2mbase_stub::report = NULL;
ram54288 0:dbad57390bd1 617 }
ram54288 0:dbad57390bd1 618