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_m2mbase.h"
djmeyers 0:06ee5f8a484a 18
djmeyers 0:06ee5f8a484a 19 #include "m2mreportobserver.h"
djmeyers 0:06ee5f8a484a 20 #include "m2mreporthandler.h"
djmeyers 0:06ee5f8a484a 21 #include "m2mreporthandler_stub.h"
djmeyers 0:06ee5f8a484a 22 #include "nsdlaccesshelper_stub.h"
djmeyers 0:06ee5f8a484a 23 #include "m2mresource_stub.h"
djmeyers 0:06ee5f8a484a 24 #include "m2mobject_stub.h"
djmeyers 0:06ee5f8a484a 25 #include "m2mobjectinstance_stub.h"
djmeyers 0:06ee5f8a484a 26 #include "m2mresource_stub.h"
djmeyers 0:06ee5f8a484a 27
djmeyers 0:06ee5f8a484a 28 static bool value_update_called = false;
djmeyers 0:06ee5f8a484a 29 static void value_updated_function(const char* name) {
djmeyers 0:06ee5f8a484a 30 value_update_called = true;
djmeyers 0:06ee5f8a484a 31 }
djmeyers 0:06ee5f8a484a 32
djmeyers 0:06ee5f8a484a 33 class MyTest{
djmeyers 0:06ee5f8a484a 34 public:
djmeyers 0:06ee5f8a484a 35 void value_updated_function(const char* name) {
djmeyers 0:06ee5f8a484a 36 visited = true;
djmeyers 0:06ee5f8a484a 37 }
djmeyers 0:06ee5f8a484a 38
djmeyers 0:06ee5f8a484a 39 bool visited;
djmeyers 0:06ee5f8a484a 40 };
djmeyers 0:06ee5f8a484a 41
djmeyers 0:06ee5f8a484a 42
djmeyers 0:06ee5f8a484a 43 class Observer : public M2MReportObserver {
djmeyers 0:06ee5f8a484a 44 public:
djmeyers 0:06ee5f8a484a 45 Observer(){}
djmeyers 0:06ee5f8a484a 46 ~Observer(){}
djmeyers 0:06ee5f8a484a 47
djmeyers 0:06ee5f8a484a 48 void observation_to_be_sent(m2m::Vector<uint16_t>,bool){}
djmeyers 0:06ee5f8a484a 49 };
djmeyers 0:06ee5f8a484a 50
djmeyers 0:06ee5f8a484a 51 Test_M2MBase::Test_M2MBase(char* path, Handler *handler)
djmeyers 0:06ee5f8a484a 52 : M2MBase("name",M2MBase::Dynamic, "type", path, false)
djmeyers 0:06ee5f8a484a 53
djmeyers 0:06ee5f8a484a 54 {
djmeyers 0:06ee5f8a484a 55 obsHandler = handler;
djmeyers 0:06ee5f8a484a 56 }
djmeyers 0:06ee5f8a484a 57
djmeyers 0:06ee5f8a484a 58 Test_M2MBase::~Test_M2MBase()
djmeyers 0:06ee5f8a484a 59 {
djmeyers 0:06ee5f8a484a 60 }
djmeyers 0:06ee5f8a484a 61
djmeyers 0:06ee5f8a484a 62 void Test_M2MBase::test_set_operation()
djmeyers 0:06ee5f8a484a 63 {
djmeyers 0:06ee5f8a484a 64 this->_sn_resource->dynamic_resource_params->static_resource_parameters->mode = M2MBase::Static;
djmeyers 0:06ee5f8a484a 65 M2MBase::Operation test = M2MBase::GET_ALLOWED;
djmeyers 0:06ee5f8a484a 66 set_operation(test);
djmeyers 0:06ee5f8a484a 67
djmeyers 0:06ee5f8a484a 68 CHECK(test == this->operation());
djmeyers 0:06ee5f8a484a 69
djmeyers 0:06ee5f8a484a 70 this->_sn_resource->dynamic_resource_params->static_resource_parameters->mode = M2MBase::Dynamic;
djmeyers 0:06ee5f8a484a 71 test = M2MBase::PUT_ALLOWED;
djmeyers 0:06ee5f8a484a 72 set_operation(test);
djmeyers 0:06ee5f8a484a 73
djmeyers 0:06ee5f8a484a 74 CHECK(test == this->operation());
djmeyers 0:06ee5f8a484a 75 }
djmeyers 0:06ee5f8a484a 76
djmeyers 0:06ee5f8a484a 77 void Test_M2MBase::test_set_base_type()
djmeyers 0:06ee5f8a484a 78 {
djmeyers 0:06ee5f8a484a 79 set_base_type(M2MBase::ObjectInstance);
djmeyers 0:06ee5f8a484a 80 CHECK(M2MBase::ObjectInstance == this->base_type());
djmeyers 0:06ee5f8a484a 81 }
djmeyers 0:06ee5f8a484a 82
djmeyers 0:06ee5f8a484a 83 void Test_M2MBase::test_set_interface_description()
djmeyers 0:06ee5f8a484a 84 {
djmeyers 0:06ee5f8a484a 85 String test = "interface_description";
djmeyers 0:06ee5f8a484a 86 set_interface_description(test);
djmeyers 0:06ee5f8a484a 87
djmeyers 0:06ee5f8a484a 88 CHECK(test == this->interface_description());
djmeyers 0:06ee5f8a484a 89 }
djmeyers 0:06ee5f8a484a 90
djmeyers 0:06ee5f8a484a 91 void Test_M2MBase::test_uri_path()
djmeyers 0:06ee5f8a484a 92 {
djmeyers 0:06ee5f8a484a 93 // Default value in ctor
djmeyers 0:06ee5f8a484a 94 String test = "test";
djmeyers 0:06ee5f8a484a 95 CHECK(test == uri_path());
djmeyers 0:06ee5f8a484a 96 }
djmeyers 0:06ee5f8a484a 97
djmeyers 0:06ee5f8a484a 98 void Test_M2MBase::test_set_resource_type()
djmeyers 0:06ee5f8a484a 99 {
djmeyers 0:06ee5f8a484a 100 String test = "resource_type";
djmeyers 0:06ee5f8a484a 101 set_resource_type(test);
djmeyers 0:06ee5f8a484a 102
djmeyers 0:06ee5f8a484a 103 CHECK(test == this->_sn_resource->dynamic_resource_params->static_resource_parameters->resource_type_ptr);
djmeyers 0:06ee5f8a484a 104 }
djmeyers 0:06ee5f8a484a 105
djmeyers 0:06ee5f8a484a 106 void Test_M2MBase::test_set_coap_content_type()
djmeyers 0:06ee5f8a484a 107 {
djmeyers 0:06ee5f8a484a 108 u_int8_t test = 1;
djmeyers 0:06ee5f8a484a 109 set_coap_content_type(test);
djmeyers 0:06ee5f8a484a 110
djmeyers 0:06ee5f8a484a 111 CHECK(test == this->coap_content_type());
djmeyers 0:06ee5f8a484a 112 }
djmeyers 0:06ee5f8a484a 113
djmeyers 0:06ee5f8a484a 114 void Test_M2MBase::test_set_instance_id()
djmeyers 0:06ee5f8a484a 115 {
djmeyers 0:06ee5f8a484a 116 u_int16_t test = 1;
djmeyers 0:06ee5f8a484a 117 set_instance_id(test);
djmeyers 0:06ee5f8a484a 118
djmeyers 0:06ee5f8a484a 119 CHECK(test == this->instance_id());
djmeyers 0:06ee5f8a484a 120 }
djmeyers 0:06ee5f8a484a 121
djmeyers 0:06ee5f8a484a 122 void Test_M2MBase::test_set_observable()
djmeyers 0:06ee5f8a484a 123 {
djmeyers 0:06ee5f8a484a 124 bool test = true;
djmeyers 0:06ee5f8a484a 125 set_observable(test);
djmeyers 0:06ee5f8a484a 126
djmeyers 0:06ee5f8a484a 127 CHECK(test == this->is_observable());
djmeyers 0:06ee5f8a484a 128 }
djmeyers 0:06ee5f8a484a 129
djmeyers 0:06ee5f8a484a 130 void Test_M2MBase::test_add_observation_level()
djmeyers 0:06ee5f8a484a 131 {
djmeyers 0:06ee5f8a484a 132 add_observation_level(M2MBase::R_Attribute);
djmeyers 0:06ee5f8a484a 133 CHECK(M2MBase::R_Attribute == this->_observation_level);
djmeyers 0:06ee5f8a484a 134
djmeyers 0:06ee5f8a484a 135 add_observation_level(M2MBase::O_Attribute);
djmeyers 0:06ee5f8a484a 136 CHECK(M2MBase::OR_Attribute == this->_observation_level);
djmeyers 0:06ee5f8a484a 137 }
djmeyers 0:06ee5f8a484a 138
djmeyers 0:06ee5f8a484a 139 void Test_M2MBase::test_remove_observation_level()
djmeyers 0:06ee5f8a484a 140 {
djmeyers 0:06ee5f8a484a 141 this->_observation_level = M2MBase::OR_Attribute;
djmeyers 0:06ee5f8a484a 142 remove_observation_level(M2MBase::R_Attribute);
djmeyers 0:06ee5f8a484a 143 CHECK(M2MBase::O_Attribute == this->_observation_level);
djmeyers 0:06ee5f8a484a 144
djmeyers 0:06ee5f8a484a 145 remove_observation_level(M2MBase::O_Attribute);
djmeyers 0:06ee5f8a484a 146 CHECK(M2MBase::None == this->_observation_level);
djmeyers 0:06ee5f8a484a 147
djmeyers 0:06ee5f8a484a 148 this->_observation_level = M2MBase::OI_Attribute;
djmeyers 0:06ee5f8a484a 149 remove_observation_level(M2MBase::R_Attribute);
djmeyers 0:06ee5f8a484a 150 CHECK(M2MBase::OI_Attribute == this->_observation_level);
djmeyers 0:06ee5f8a484a 151
djmeyers 0:06ee5f8a484a 152 remove_observation_level(M2MBase::OI_Attribute);
djmeyers 0:06ee5f8a484a 153 CHECK(M2MBase::None == this->_observation_level);
djmeyers 0:06ee5f8a484a 154 remove_observation_level(M2MBase::OI_Attribute);
djmeyers 0:06ee5f8a484a 155 CHECK(M2MBase::None == this->_observation_level);
djmeyers 0:06ee5f8a484a 156 }
djmeyers 0:06ee5f8a484a 157
djmeyers 0:06ee5f8a484a 158 void Test_M2MBase::test_set_under_observation()
djmeyers 0:06ee5f8a484a 159 {
djmeyers 0:06ee5f8a484a 160 this->set_base_type(M2MBase::ObjectInstance);
djmeyers 0:06ee5f8a484a 161
djmeyers 0:06ee5f8a484a 162 bool test = true;
djmeyers 0:06ee5f8a484a 163 set_under_observation(test,NULL);
djmeyers 0:06ee5f8a484a 164 set_under_observation(test,obsHandler);
djmeyers 0:06ee5f8a484a 165
djmeyers 0:06ee5f8a484a 166 CHECK(obsHandler == this->_observation_handler);
djmeyers 0:06ee5f8a484a 167
djmeyers 0:06ee5f8a484a 168 set_under_observation(test,NULL);
djmeyers 0:06ee5f8a484a 169
djmeyers 0:06ee5f8a484a 170 test = false;
djmeyers 0:06ee5f8a484a 171 set_under_observation(test,NULL);
djmeyers 0:06ee5f8a484a 172
djmeyers 0:06ee5f8a484a 173 test = false;
djmeyers 0:06ee5f8a484a 174 set_under_observation(test,obsHandler);
djmeyers 0:06ee5f8a484a 175
djmeyers 0:06ee5f8a484a 176 set_under_observation(test,obsHandler);
djmeyers 0:06ee5f8a484a 177 }
djmeyers 0:06ee5f8a484a 178
djmeyers 0:06ee5f8a484a 179 void Test_M2MBase::test_set_observation_token()
djmeyers 0:06ee5f8a484a 180 {
djmeyers 0:06ee5f8a484a 181 this->_token_length = 4;
djmeyers 0:06ee5f8a484a 182 this->_token = (u_int8_t *)malloc(this->_token_length);
djmeyers 0:06ee5f8a484a 183 String test = "token";
djmeyers 0:06ee5f8a484a 184 set_observation_token((const u_int8_t*)test.c_str(), (u_int8_t)test.size());
djmeyers 0:06ee5f8a484a 185
djmeyers 0:06ee5f8a484a 186 CHECK(this->_token_length == 5);
djmeyers 0:06ee5f8a484a 187 }
djmeyers 0:06ee5f8a484a 188
djmeyers 0:06ee5f8a484a 189 void Test_M2MBase::test_observation_level()
djmeyers 0:06ee5f8a484a 190 {
djmeyers 0:06ee5f8a484a 191 this->_observation_level = M2MBase::OR_Attribute;
djmeyers 0:06ee5f8a484a 192 CHECK(M2MBase::OR_Attribute == this->observation_level());
djmeyers 0:06ee5f8a484a 193 }
djmeyers 0:06ee5f8a484a 194
djmeyers 0:06ee5f8a484a 195 void Test_M2MBase::test_get_observation_token()
djmeyers 0:06ee5f8a484a 196 {
djmeyers 0:06ee5f8a484a 197 u_int8_t test_value[] = {"val"};
djmeyers 0:06ee5f8a484a 198 u_int32_t value_length((u_int32_t)sizeof(test_value));
djmeyers 0:06ee5f8a484a 199
djmeyers 0:06ee5f8a484a 200 u_int8_t* out_value = (u_int8_t *)malloc(value_length);
djmeyers 0:06ee5f8a484a 201 u_int32_t out_size = value_length;
djmeyers 0:06ee5f8a484a 202 memcpy((u_int8_t *)out_value, (u_int8_t *)test_value, value_length);
djmeyers 0:06ee5f8a484a 203
djmeyers 0:06ee5f8a484a 204 u_int8_t test[] = {"token"};
djmeyers 0:06ee5f8a484a 205 this->_token_length = (u_int8_t)sizeof(test);
djmeyers 0:06ee5f8a484a 206 this->_token = (u_int8_t *)malloc(this->_token_length);
djmeyers 0:06ee5f8a484a 207 memcpy((u_int8_t *)this->_token, (u_int8_t *)test, this->_token_length);
djmeyers 0:06ee5f8a484a 208
djmeyers 0:06ee5f8a484a 209 get_observation_token(out_value,out_size);
djmeyers 0:06ee5f8a484a 210
djmeyers 0:06ee5f8a484a 211 CHECK(out_size == 6);
djmeyers 0:06ee5f8a484a 212
djmeyers 0:06ee5f8a484a 213 free(out_value);
djmeyers 0:06ee5f8a484a 214 }
djmeyers 0:06ee5f8a484a 215
djmeyers 0:06ee5f8a484a 216 void Test_M2MBase::test_mode()
djmeyers 0:06ee5f8a484a 217 {
djmeyers 0:06ee5f8a484a 218 CHECK(M2MBase::Dynamic == mode());
djmeyers 0:06ee5f8a484a 219 }
djmeyers 0:06ee5f8a484a 220
djmeyers 0:06ee5f8a484a 221 void Test_M2MBase::test_observation_number()
djmeyers 0:06ee5f8a484a 222 {
djmeyers 0:06ee5f8a484a 223 u_int8_t test = 1;
djmeyers 0:06ee5f8a484a 224 this->_observation_number = test;
djmeyers 0:06ee5f8a484a 225
djmeyers 0:06ee5f8a484a 226 CHECK(test == observation_number());
djmeyers 0:06ee5f8a484a 227 }
djmeyers 0:06ee5f8a484a 228
djmeyers 0:06ee5f8a484a 229 void Test_M2MBase::test_name()
djmeyers 0:06ee5f8a484a 230 {
djmeyers 0:06ee5f8a484a 231 // Default value in ctor
djmeyers 0:06ee5f8a484a 232 String test = "name";
djmeyers 0:06ee5f8a484a 233 CHECK(test == name());
djmeyers 0:06ee5f8a484a 234 }
djmeyers 0:06ee5f8a484a 235
djmeyers 0:06ee5f8a484a 236 void Test_M2MBase::test_name_id()
djmeyers 0:06ee5f8a484a 237 {
djmeyers 0:06ee5f8a484a 238 int id = 10;
djmeyers 0:06ee5f8a484a 239 this->_sn_resource->name_id = id;
djmeyers 0:06ee5f8a484a 240 CHECK(id == name_id());
djmeyers 0:06ee5f8a484a 241 }
djmeyers 0:06ee5f8a484a 242
djmeyers 0:06ee5f8a484a 243 void Test_M2MBase::test_handle_observation_attribute()
djmeyers 0:06ee5f8a484a 244 {
djmeyers 0:06ee5f8a484a 245 char *s = "wrong";
djmeyers 0:06ee5f8a484a 246 bool ret = handle_observation_attribute(s);
djmeyers 0:06ee5f8a484a 247 CHECK(ret == false);
djmeyers 0:06ee5f8a484a 248 delete this->_report_handler;
djmeyers 0:06ee5f8a484a 249
djmeyers 0:06ee5f8a484a 250 Observer obs;
djmeyers 0:06ee5f8a484a 251 this->_report_handler = new M2MReportHandler(obs);
djmeyers 0:06ee5f8a484a 252
djmeyers 0:06ee5f8a484a 253 m2mreporthandler_stub::bool_return = true;
djmeyers 0:06ee5f8a484a 254 ret = handle_observation_attribute(s);
djmeyers 0:06ee5f8a484a 255 CHECK(ret == true);
djmeyers 0:06ee5f8a484a 256
djmeyers 0:06ee5f8a484a 257 this->_is_under_observation = true;
djmeyers 0:06ee5f8a484a 258 ret = handle_observation_attribute(s);
djmeyers 0:06ee5f8a484a 259 CHECK(ret == true);
djmeyers 0:06ee5f8a484a 260
djmeyers 0:06ee5f8a484a 261 this->_is_under_observation = true;
djmeyers 0:06ee5f8a484a 262 m2mreporthandler_stub::bool_return = false;
djmeyers 0:06ee5f8a484a 263 ret = handle_observation_attribute(s);
djmeyers 0:06ee5f8a484a 264 CHECK(ret == false);
djmeyers 0:06ee5f8a484a 265 }
djmeyers 0:06ee5f8a484a 266
djmeyers 0:06ee5f8a484a 267 void Test_M2MBase::test_observation_to_be_sent()
djmeyers 0:06ee5f8a484a 268 {
djmeyers 0:06ee5f8a484a 269 Vector<uint16_t> list;
djmeyers 0:06ee5f8a484a 270 observation_to_be_sent(list);
djmeyers 0:06ee5f8a484a 271 CHECK(obsHandler->visited == false);
djmeyers 0:06ee5f8a484a 272 this->set_base_type(M2MBase::ObjectInstance);
djmeyers 0:06ee5f8a484a 273
djmeyers 0:06ee5f8a484a 274 bool test = true;
djmeyers 0:06ee5f8a484a 275 set_under_observation(test,obsHandler);
djmeyers 0:06ee5f8a484a 276 observation_to_be_sent(list);
djmeyers 0:06ee5f8a484a 277 CHECK(obsHandler->visited == true);
djmeyers 0:06ee5f8a484a 278 }
djmeyers 0:06ee5f8a484a 279
djmeyers 0:06ee5f8a484a 280 void Test_M2MBase::test_handle_get_request()
djmeyers 0:06ee5f8a484a 281 {
djmeyers 0:06ee5f8a484a 282 CHECK(this->handle_get_request(NULL,NULL,NULL) == NULL);
djmeyers 0:06ee5f8a484a 283 }
djmeyers 0:06ee5f8a484a 284
djmeyers 0:06ee5f8a484a 285 void Test_M2MBase::test_handle_put_request()
djmeyers 0:06ee5f8a484a 286 {
djmeyers 0:06ee5f8a484a 287 bool execute = false;
djmeyers 0:06ee5f8a484a 288 CHECK(this->handle_put_request(NULL,NULL,NULL, execute) == NULL);
djmeyers 0:06ee5f8a484a 289 }
djmeyers 0:06ee5f8a484a 290
djmeyers 0:06ee5f8a484a 291 void Test_M2MBase::test_handle_post_request()
djmeyers 0:06ee5f8a484a 292 {
djmeyers 0:06ee5f8a484a 293 bool execute = false;
djmeyers 0:06ee5f8a484a 294 CHECK(this->handle_post_request(NULL,NULL,NULL, execute) == NULL);
djmeyers 0:06ee5f8a484a 295 }
djmeyers 0:06ee5f8a484a 296
djmeyers 0:06ee5f8a484a 297 void Test_M2MBase::test_memory_alloc()
djmeyers 0:06ee5f8a484a 298 {
djmeyers 0:06ee5f8a484a 299 CHECK(memory_alloc(0) == 0);
djmeyers 0:06ee5f8a484a 300 uint8_t *ptr = 0;
djmeyers 0:06ee5f8a484a 301 ptr = (uint8_t*)memory_alloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 302 CHECK(ptr != NULL);
djmeyers 0:06ee5f8a484a 303 memory_free(ptr);
djmeyers 0:06ee5f8a484a 304 }
djmeyers 0:06ee5f8a484a 305
djmeyers 0:06ee5f8a484a 306 void Test_M2MBase::test_memory_free()
djmeyers 0:06ee5f8a484a 307 {
djmeyers 0:06ee5f8a484a 308 uint8_t *ptr = (uint8_t*)memory_alloc(sizeof(uint8_t));
djmeyers 0:06ee5f8a484a 309 memory_free((void*)ptr);
djmeyers 0:06ee5f8a484a 310 //memory leak test will fail, if there is a leak, so no need for CHECK
djmeyers 0:06ee5f8a484a 311 }
djmeyers 0:06ee5f8a484a 312
djmeyers 0:06ee5f8a484a 313 void Test_M2MBase::test_report_handler()
djmeyers 0:06ee5f8a484a 314 {
djmeyers 0:06ee5f8a484a 315 CHECK(report_handler() == NULL);
djmeyers 0:06ee5f8a484a 316 }
djmeyers 0:06ee5f8a484a 317
djmeyers 0:06ee5f8a484a 318 void Test_M2MBase::test_observation_handler()
djmeyers 0:06ee5f8a484a 319 {
djmeyers 0:06ee5f8a484a 320 CHECK(observation_handler() == NULL);
djmeyers 0:06ee5f8a484a 321 }
djmeyers 0:06ee5f8a484a 322
djmeyers 0:06ee5f8a484a 323 void Test_M2MBase::test_id_number()
djmeyers 0:06ee5f8a484a 324 {
djmeyers 0:06ee5f8a484a 325 char* path = (char*)malloc(3);
djmeyers 0:06ee5f8a484a 326 strcpy(path, "10");
djmeyers 0:06ee5f8a484a 327 M2MBase* b = new M2MBase("10", M2MBase::Static, "", path, false);
djmeyers 0:06ee5f8a484a 328 CHECK(b->name_id() == 10);
djmeyers 0:06ee5f8a484a 329 delete b;
djmeyers 0:06ee5f8a484a 330
djmeyers 0:06ee5f8a484a 331 char* path1 = (char*)malloc(6);
djmeyers 0:06ee5f8a484a 332 strcpy(path1, "66567");
djmeyers 0:06ee5f8a484a 333
djmeyers 0:06ee5f8a484a 334 M2MBase * test1 = new M2MBase("66567",M2MBase::Static, "", path1, false);
djmeyers 0:06ee5f8a484a 335 CHECK(test1->name_id() == -1);
djmeyers 0:06ee5f8a484a 336 delete test1;
djmeyers 0:06ee5f8a484a 337 }
djmeyers 0:06ee5f8a484a 338
djmeyers 0:06ee5f8a484a 339 void Test_M2MBase::test_set_register_uri()
djmeyers 0:06ee5f8a484a 340 {
djmeyers 0:06ee5f8a484a 341 this->set_register_uri(false);
djmeyers 0:06ee5f8a484a 342 CHECK(this->register_uri() == false);
djmeyers 0:06ee5f8a484a 343 }
djmeyers 0:06ee5f8a484a 344
djmeyers 0:06ee5f8a484a 345 void Test_M2MBase::test_set_observation_number()
djmeyers 0:06ee5f8a484a 346 {
djmeyers 0:06ee5f8a484a 347 set_observation_number(0);
djmeyers 0:06ee5f8a484a 348 CHECK(0 == this->_observation_number);
djmeyers 0:06ee5f8a484a 349 }
djmeyers 0:06ee5f8a484a 350
djmeyers 0:06ee5f8a484a 351 void Test_M2MBase::test_set_max_age()
djmeyers 0:06ee5f8a484a 352 {
djmeyers 0:06ee5f8a484a 353 this->set_max_age(10000);
djmeyers 0:06ee5f8a484a 354 CHECK(this->max_age() == 10000);
djmeyers 0:06ee5f8a484a 355 }
djmeyers 0:06ee5f8a484a 356
djmeyers 0:06ee5f8a484a 357 void Test_M2MBase::test_is_under_observation()
djmeyers 0:06ee5f8a484a 358 {
djmeyers 0:06ee5f8a484a 359 CHECK(false == is_under_observation());
djmeyers 0:06ee5f8a484a 360 this->_is_under_observation = true;
djmeyers 0:06ee5f8a484a 361 CHECK(true == is_under_observation());
djmeyers 0:06ee5f8a484a 362 }
djmeyers 0:06ee5f8a484a 363
djmeyers 0:06ee5f8a484a 364 void Test_M2MBase::test_value_updated_function()
djmeyers 0:06ee5f8a484a 365 {
djmeyers 0:06ee5f8a484a 366 MyTest test;
djmeyers 0:06ee5f8a484a 367 test.visited = false;
djmeyers 0:06ee5f8a484a 368
djmeyers 0:06ee5f8a484a 369 CHECK(this->is_value_updated_function_set() == false);
djmeyers 0:06ee5f8a484a 370
djmeyers 0:06ee5f8a484a 371 this->set_value_updated_function(value_updated_callback(&test,&MyTest::value_updated_function));
djmeyers 0:06ee5f8a484a 372 this->execute_value_updated("test");
djmeyers 0:06ee5f8a484a 373 CHECK(this->is_value_updated_function_set() == true);
djmeyers 0:06ee5f8a484a 374 CHECK(test.visited == true);
djmeyers 0:06ee5f8a484a 375
djmeyers 0:06ee5f8a484a 376 value_update_called = false;
djmeyers 0:06ee5f8a484a 377 this->set_value_updated_function(value_updated_callback2(value_updated_function));
djmeyers 0:06ee5f8a484a 378 this->execute_value_updated("test");
djmeyers 0:06ee5f8a484a 379 CHECK(value_update_called == true);
djmeyers 0:06ee5f8a484a 380 }
djmeyers 0:06ee5f8a484a 381
djmeyers 0:06ee5f8a484a 382 void Test_M2MBase::test_build_path()
djmeyers 0:06ee5f8a484a 383 {
djmeyers 0:06ee5f8a484a 384 StringBuffer<MAX_PATH_SIZE> buffer;
djmeyers 0:06ee5f8a484a 385 CHECK(build_path(buffer, "0123456789012345678901234567890123456789012345678901234567891234", 10000, "2123456789012345678901234567890123456789012345678901234567891234", 20000));
djmeyers 0:06ee5f8a484a 386 CHECK(!build_path(buffer, "01234567890123456789012345678901234567890123456789012345678912345", 10000, "21234567890123456789012345678901234567890123456789012345678912345", 20000));
djmeyers 0:06ee5f8a484a 387
djmeyers 0:06ee5f8a484a 388 StringBuffer<MAX_PATH_SIZE_2> buffer2;
djmeyers 0:06ee5f8a484a 389 CHECK(build_path(buffer2, "0123456789012345678901234567890123456789012345678901234567891234", 10000, "2123456789012345678901234567890123456789012345678901234567891234"));
djmeyers 0:06ee5f8a484a 390 CHECK(!build_path(buffer2, "01234567890123456789012345678901234567890123456789012345678912345", 10000, "21234567890123456789012345678901234567890123456789012345678912345"));
djmeyers 0:06ee5f8a484a 391
djmeyers 0:06ee5f8a484a 392 StringBuffer<MAX_PATH_SIZE_3> buffer3;
djmeyers 0:06ee5f8a484a 393 CHECK(build_path(buffer3, "0123456789012345678901234567890123456789012345678901234567891234", 10000, 20000));
djmeyers 0:06ee5f8a484a 394 CHECK(!build_path(buffer3, "01234567890123456789012345678901234567890123456789012345678912345", 10000, 20000));
djmeyers 0:06ee5f8a484a 395
djmeyers 0:06ee5f8a484a 396 StringBuffer<MAX_PATH_SIZE_4> buffer4;
djmeyers 0:06ee5f8a484a 397 CHECK(build_path(buffer4, "0123456789012345678901234567890123456789012345678901234567891234", 10000));
djmeyers 0:06ee5f8a484a 398 CHECK(!build_path(buffer4, "01234567890123456789012345678901234567890123456789012345678912345", 10000));
djmeyers 0:06ee5f8a484a 399 }
djmeyers 0:06ee5f8a484a 400
djmeyers 0:06ee5f8a484a 401 void Test_M2MBase::test_set_observation_handler()
djmeyers 0:06ee5f8a484a 402 {
djmeyers 0:06ee5f8a484a 403 set_observation_handler(obsHandler);
djmeyers 0:06ee5f8a484a 404 CHECK(observation_handler() == obsHandler);
djmeyers 0:06ee5f8a484a 405 }
djmeyers 0:06ee5f8a484a 406
djmeyers 0:06ee5f8a484a 407 void Test_M2MBase::test_resource_type()
djmeyers 0:06ee5f8a484a 408 {
djmeyers 0:06ee5f8a484a 409 // Default value in ctor
djmeyers 0:06ee5f8a484a 410 String test = "type";
djmeyers 0:06ee5f8a484a 411 CHECK(test == resource_type());
djmeyers 0:06ee5f8a484a 412 }
djmeyers 0:06ee5f8a484a 413
djmeyers 0:06ee5f8a484a 414 void Test_M2MBase::test_resource_name_length()
djmeyers 0:06ee5f8a484a 415 {
djmeyers 0:06ee5f8a484a 416 CHECK(4 == resource_name_length());
djmeyers 0:06ee5f8a484a 417 }
djmeyers 0:06ee5f8a484a 418
djmeyers 0:06ee5f8a484a 419 void Test_M2MBase::test_get_nsdl_resource()
djmeyers 0:06ee5f8a484a 420 {
djmeyers 0:06ee5f8a484a 421 sn_nsdl_dynamic_resource_parameters_s *res = get_nsdl_resource();
djmeyers 0:06ee5f8a484a 422 CHECK(res != NULL);
djmeyers 0:06ee5f8a484a 423 CHECK(res->static_resource_parameters != NULL);
djmeyers 0:06ee5f8a484a 424 }
djmeyers 0:06ee5f8a484a 425
djmeyers 0:06ee5f8a484a 426 void Test_M2MBase::test_create_path()
djmeyers 0:06ee5f8a484a 427 {
djmeyers 0:06ee5f8a484a 428 char* path1 = (char*)malloc(5);
djmeyers 0:06ee5f8a484a 429 strcpy(path1, "name");
djmeyers 0:06ee5f8a484a 430 M2MObject* object = new M2MObject("name", path1);
djmeyers 0:06ee5f8a484a 431
djmeyers 0:06ee5f8a484a 432 char* path2 = (char*)malloc(7);
djmeyers 0:06ee5f8a484a 433 strcpy(path2, "name/0");
djmeyers 0:06ee5f8a484a 434 m2mresource_stub::object_instance =
djmeyers 0:06ee5f8a484a 435 new M2MObjectInstance(*object, "name","", path2);
djmeyers 0:06ee5f8a484a 436
djmeyers 0:06ee5f8a484a 437 String path = "name/1";
djmeyers 0:06ee5f8a484a 438 String res_path = "name/0/resource";
djmeyers 0:06ee5f8a484a 439 String res_path_instance = "name/0/resource/1";
djmeyers 0:06ee5f8a484a 440
djmeyers 0:06ee5f8a484a 441 char* result = create_path(*object, "1");
djmeyers 0:06ee5f8a484a 442 CHECK(path == result);
djmeyers 0:06ee5f8a484a 443 free(result);
djmeyers 0:06ee5f8a484a 444
djmeyers 0:06ee5f8a484a 445 result = create_path(*object, 1);
djmeyers 0:06ee5f8a484a 446 CHECK(path == result);
djmeyers 0:06ee5f8a484a 447 free(result);
djmeyers 0:06ee5f8a484a 448
djmeyers 0:06ee5f8a484a 449 result = create_path(*m2mresource_stub::object_instance, "resource");
djmeyers 0:06ee5f8a484a 450 CHECK(res_path == result);
djmeyers 0:06ee5f8a484a 451 free(result);
djmeyers 0:06ee5f8a484a 452
djmeyers 0:06ee5f8a484a 453 char* path3 = (char*)malloc(9);
djmeyers 0:06ee5f8a484a 454 strcpy(path3, "resource");
djmeyers 0:06ee5f8a484a 455
djmeyers 0:06ee5f8a484a 456 M2MResource* res = new M2MResource(*m2mresource_stub::object_instance,
djmeyers 0:06ee5f8a484a 457 "resource",
djmeyers 0:06ee5f8a484a 458 "type",
djmeyers 0:06ee5f8a484a 459 M2MResourceInstance::INTEGER,
djmeyers 0:06ee5f8a484a 460 false,
djmeyers 0:06ee5f8a484a 461 path3);
djmeyers 0:06ee5f8a484a 462
djmeyers 0:06ee5f8a484a 463 result = create_path(*res, 1);
djmeyers 0:06ee5f8a484a 464 CHECK(res_path_instance == result);
djmeyers 0:06ee5f8a484a 465 free(result);
djmeyers 0:06ee5f8a484a 466
djmeyers 0:06ee5f8a484a 467 delete m2mresource_stub::object_instance;
djmeyers 0:06ee5f8a484a 468 delete object;
djmeyers 0:06ee5f8a484a 469 delete res;
djmeyers 0:06ee5f8a484a 470 }
djmeyers 0:06ee5f8a484a 471
djmeyers 0:06ee5f8a484a 472 void Test_M2MBase::test_create_report_handler()
djmeyers 0:06ee5f8a484a 473 {
djmeyers 0:06ee5f8a484a 474 M2MReportHandler* report_handler = create_report_handler();
djmeyers 0:06ee5f8a484a 475 CHECK(report_handler != NULL);
djmeyers 0:06ee5f8a484a 476 }
djmeyers 0:06ee5f8a484a 477
djmeyers 0:06ee5f8a484a 478 void Test_M2MBase::test_validate_string_length()
djmeyers 0:06ee5f8a484a 479 {
djmeyers 0:06ee5f8a484a 480 String test = "stringlengthabc";
djmeyers 0:06ee5f8a484a 481 CHECK(validate_string_length(test, 1, 20) == true);
djmeyers 0:06ee5f8a484a 482 CHECK(validate_string_length(test, 1, 2) == false);
djmeyers 0:06ee5f8a484a 483 CHECK(validate_string_length(test, 15, 15) == true);
djmeyers 0:06ee5f8a484a 484 CHECK(validate_string_length(test, 16, 15) == false);
djmeyers 0:06ee5f8a484a 485
djmeyers 0:06ee5f8a484a 486 CHECK(validate_string_length(test.c_str(), 15, 15) == true);
djmeyers 0:06ee5f8a484a 487 CHECK(validate_string_length(test.c_str(), 16, 15) == false);
djmeyers 0:06ee5f8a484a 488 }
djmeyers 0:06ee5f8a484a 489
djmeyers 0:06ee5f8a484a 490 void Test_M2MBase::test_is_integer()
djmeyers 0:06ee5f8a484a 491 {
djmeyers 0:06ee5f8a484a 492 CHECK(is_integer("") == false);
djmeyers 0:06ee5f8a484a 493 CHECK(is_integer("-1a") == false);
djmeyers 0:06ee5f8a484a 494 CHECK(is_integer("10") == true);
djmeyers 0:06ee5f8a484a 495 CHECK(is_integer("+10") == true);
djmeyers 0:06ee5f8a484a 496 CHECK(is_integer("-10") == true);
djmeyers 0:06ee5f8a484a 497 }
djmeyers 0:06ee5f8a484a 498
djmeyers 0:06ee5f8a484a 499 void Test_M2MBase::test_alloc_copy()
djmeyers 0:06ee5f8a484a 500 {
djmeyers 0:06ee5f8a484a 501 uint8_t* test_ptr = (uint8_t *)malloc(10);
djmeyers 0:06ee5f8a484a 502 memset(test_ptr,'a', 10);
djmeyers 0:06ee5f8a484a 503 uint8_t* result = alloc_copy(test_ptr, 10);
djmeyers 0:06ee5f8a484a 504 CHECK(memcmp(test_ptr, result, 10) == 0);
djmeyers 0:06ee5f8a484a 505 free(test_ptr);
djmeyers 0:06ee5f8a484a 506 free(result);
djmeyers 0:06ee5f8a484a 507 }
djmeyers 0:06ee5f8a484a 508
djmeyers 0:06ee5f8a484a 509 void Test_M2MBase::test_alloc_string_copy()
djmeyers 0:06ee5f8a484a 510 {
djmeyers 0:06ee5f8a484a 511 char* test = "testi";
djmeyers 0:06ee5f8a484a 512 char* result = alloc_string_copy(test);
djmeyers 0:06ee5f8a484a 513 STRCMP_EQUAL(test,result);
djmeyers 0:06ee5f8a484a 514 free(result);
djmeyers 0:06ee5f8a484a 515 }
djmeyers 0:06ee5f8a484a 516
djmeyers 0:06ee5f8a484a 517 void Test_M2MBase::test_ctor()
djmeyers 0:06ee5f8a484a 518 {
djmeyers 0:06ee5f8a484a 519 static sn_nsdl_static_resource_parameters_s params_static = {
djmeyers 0:06ee5f8a484a 520 (char*)"", // resource_type_ptr
djmeyers 0:06ee5f8a484a 521 (char*)"", // interface_description_ptr
djmeyers 0:06ee5f8a484a 522 (uint8_t*)"", // path
djmeyers 0:06ee5f8a484a 523 (uint8_t*)"", // resource
djmeyers 0:06ee5f8a484a 524 0, // pathlen
djmeyers 0:06ee5f8a484a 525 0, // resourcelen
djmeyers 0:06ee5f8a484a 526 false, // external_memory_block
djmeyers 0:06ee5f8a484a 527 SN_GRS_DYNAMIC, // mode
djmeyers 0:06ee5f8a484a 528 false // free_on_delete
djmeyers 0:06ee5f8a484a 529 };
djmeyers 0:06ee5f8a484a 530
djmeyers 0:06ee5f8a484a 531 static sn_nsdl_dynamic_resource_parameters_s params_dynamic = {
djmeyers 0:06ee5f8a484a 532 __nsdl_c_callback,
djmeyers 0:06ee5f8a484a 533 &params_static,
djmeyers 0:06ee5f8a484a 534 {NULL, NULL}, // link
djmeyers 0:06ee5f8a484a 535 0, // coap_content_type
djmeyers 0:06ee5f8a484a 536 M2MBase::PUT_ALLOWED, // access
djmeyers 0:06ee5f8a484a 537 0, // registered
djmeyers 0:06ee5f8a484a 538 false, // publish_uri
djmeyers 0:06ee5f8a484a 539 false, // free_on_delete
djmeyers 0:06ee5f8a484a 540 true // observable
djmeyers 0:06ee5f8a484a 541 };
djmeyers 0:06ee5f8a484a 542
djmeyers 0:06ee5f8a484a 543 const static M2MBase::lwm2m_parameters params = {
djmeyers 0:06ee5f8a484a 544 0, // max_age
djmeyers 0:06ee5f8a484a 545 0, // instance_id
djmeyers 0:06ee5f8a484a 546 0, // name_id
djmeyers 0:06ee5f8a484a 547 (char*)"", // name
djmeyers 0:06ee5f8a484a 548 &params_dynamic,
djmeyers 0:06ee5f8a484a 549 M2MBase::Resource, // base_type
djmeyers 0:06ee5f8a484a 550 false // free_on_delete
djmeyers 0:06ee5f8a484a 551 };
djmeyers 0:06ee5f8a484a 552 M2MBase* base = new M2MBase(&params);
djmeyers 0:06ee5f8a484a 553 delete base;
djmeyers 0:06ee5f8a484a 554 }