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_m2minterfaceimpl.h"
ram54288 0:dbad57390bd1 18 #include "m2minterfaceobserver.h"
ram54288 0:dbad57390bd1 19 #include "m2mconnectionhandler_stub.h"
ram54288 0:dbad57390bd1 20 #include "m2msecurity_stub.h"
ram54288 0:dbad57390bd1 21 #include "m2mnsdlinterface_stub.h"
ram54288 0:dbad57390bd1 22 #include "m2mobject_stub.h"
ram54288 0:dbad57390bd1 23 #include "m2mobjectinstance_stub.h"
ram54288 0:dbad57390bd1 24 #include "m2mbase.h"
ram54288 0:dbad57390bd1 25
ram54288 0:dbad57390bd1 26 entropy_cb ent_cb;
ram54288 0:dbad57390bd1 27
ram54288 0:dbad57390bd1 28 class TestObserver : public M2MInterfaceObserver {
ram54288 0:dbad57390bd1 29
ram54288 0:dbad57390bd1 30 public:
ram54288 0:dbad57390bd1 31 TestObserver() : val_updated(false), error_occured(false),
ram54288 0:dbad57390bd1 32 registered(false), unregistered(false), bootstrapped(false)
ram54288 0:dbad57390bd1 33 {
ram54288 0:dbad57390bd1 34 }
ram54288 0:dbad57390bd1 35
ram54288 0:dbad57390bd1 36 virtual ~TestObserver(){}
ram54288 0:dbad57390bd1 37 void bootstrap_done(M2MSecurity */*server_object*/){
ram54288 0:dbad57390bd1 38 bootstrapped = true;
ram54288 0:dbad57390bd1 39 }
ram54288 0:dbad57390bd1 40
ram54288 0:dbad57390bd1 41 void object_registered(M2MSecurity */*security_object*/,
ram54288 0:dbad57390bd1 42 const M2MServer &/*server_object*/) {
ram54288 0:dbad57390bd1 43 registered = true;
ram54288 0:dbad57390bd1 44 }
ram54288 0:dbad57390bd1 45
ram54288 0:dbad57390bd1 46 void object_unregistered(M2MSecurity */*server_object*/){
ram54288 0:dbad57390bd1 47 unregistered = true;
ram54288 0:dbad57390bd1 48 }
ram54288 0:dbad57390bd1 49
ram54288 0:dbad57390bd1 50 void registration_updated(M2MSecurity */*security_object*/,
ram54288 0:dbad57390bd1 51 const M2MServer &/*server_object*/){
ram54288 0:dbad57390bd1 52 registered = true;
ram54288 0:dbad57390bd1 53 }
ram54288 0:dbad57390bd1 54
ram54288 0:dbad57390bd1 55 void error(M2MInterface::Error /*error*/){
ram54288 0:dbad57390bd1 56 error_occured = true;
ram54288 0:dbad57390bd1 57 }
ram54288 0:dbad57390bd1 58
ram54288 0:dbad57390bd1 59 void value_updated(M2MBase *, M2MBase::BaseType ){
ram54288 0:dbad57390bd1 60 val_updated = true;
ram54288 0:dbad57390bd1 61 }
ram54288 0:dbad57390bd1 62
ram54288 0:dbad57390bd1 63 bool val_updated;
ram54288 0:dbad57390bd1 64 bool error_occured;
ram54288 0:dbad57390bd1 65 bool registered;
ram54288 0:dbad57390bd1 66 bool unregistered;
ram54288 0:dbad57390bd1 67 bool bootstrapped;
ram54288 0:dbad57390bd1 68 };
ram54288 0:dbad57390bd1 69
ram54288 0:dbad57390bd1 70 class M2MBaseTest : public M2MBase
ram54288 0:dbad57390bd1 71 {
ram54288 0:dbad57390bd1 72 public:
ram54288 0:dbad57390bd1 73 M2MBaseTest() : M2MBase("a", M2MBase::Static, "type","a",false){}
ram54288 0:dbad57390bd1 74 };
ram54288 0:dbad57390bd1 75
ram54288 0:dbad57390bd1 76 Test_M2MInterfaceImpl::Test_M2MInterfaceImpl()
ram54288 0:dbad57390bd1 77 {
ram54288 0:dbad57390bd1 78 observer = new TestObserver();
ram54288 0:dbad57390bd1 79 impl = new M2MInterfaceImpl(*observer,
ram54288 0:dbad57390bd1 80 "endpoint_name",
ram54288 0:dbad57390bd1 81 "endpoint_type",
ram54288 0:dbad57390bd1 82 120,
ram54288 0:dbad57390bd1 83 8000,
ram54288 0:dbad57390bd1 84 "domain");
ram54288 0:dbad57390bd1 85 }
ram54288 0:dbad57390bd1 86
ram54288 0:dbad57390bd1 87 Test_M2MInterfaceImpl:: ~Test_M2MInterfaceImpl()
ram54288 0:dbad57390bd1 88 {
ram54288 0:dbad57390bd1 89 delete observer;
ram54288 0:dbad57390bd1 90 delete impl;
ram54288 0:dbad57390bd1 91 }
ram54288 0:dbad57390bd1 92
ram54288 0:dbad57390bd1 93 void Test_M2MInterfaceImpl::test_constructor()
ram54288 0:dbad57390bd1 94 {
ram54288 0:dbad57390bd1 95 TestObserver obs;
ram54288 0:dbad57390bd1 96
ram54288 0:dbad57390bd1 97 M2MInterfaceImpl* obj = new M2MInterfaceImpl(obs,
ram54288 0:dbad57390bd1 98 "endpoint_name",
ram54288 0:dbad57390bd1 99 "endpoint_type",
ram54288 0:dbad57390bd1 100 120,
ram54288 0:dbad57390bd1 101 8000,
ram54288 0:dbad57390bd1 102 "domain",
ram54288 0:dbad57390bd1 103 M2MInterface::TCP);
ram54288 0:dbad57390bd1 104 CHECK(obj->_current_state == 0);
ram54288 0:dbad57390bd1 105 //TODO: Check rest of variables
ram54288 0:dbad57390bd1 106 delete obj;
ram54288 0:dbad57390bd1 107 obj = new M2MInterfaceImpl(obs,
ram54288 0:dbad57390bd1 108 "endpoint_name",
ram54288 0:dbad57390bd1 109 "endpoint_type",
ram54288 0:dbad57390bd1 110 120,
ram54288 0:dbad57390bd1 111 8000,
ram54288 0:dbad57390bd1 112 "domain",
ram54288 0:dbad57390bd1 113 M2MInterface::TCP_QUEUE);
ram54288 0:dbad57390bd1 114 delete obj;
ram54288 0:dbad57390bd1 115 }
ram54288 0:dbad57390bd1 116
ram54288 0:dbad57390bd1 117 void Test_M2MInterfaceImpl::test_bootstrap()
ram54288 0:dbad57390bd1 118 {
ram54288 0:dbad57390bd1 119 M2MSecurity *sec = new M2MSecurity(M2MSecurity::Bootstrap);
ram54288 0:dbad57390bd1 120 m2msecurity_stub::int_value = 2;
ram54288 0:dbad57390bd1 121 String *val = new String("coaps://[2001:12:12:23::23:FF]:5685");
ram54288 0:dbad57390bd1 122
ram54288 0:dbad57390bd1 123 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 124 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 125 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 126
ram54288 0:dbad57390bd1 127
ram54288 0:dbad57390bd1 128 impl->bootstrap(NULL);
ram54288 0:dbad57390bd1 129 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 130
ram54288 0:dbad57390bd1 131 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 132
ram54288 0:dbad57390bd1 133 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 134
ram54288 0:dbad57390bd1 135 delete val;
ram54288 0:dbad57390bd1 136
ram54288 0:dbad57390bd1 137 val = new String("coaps://[10.45.3.83:5685");
ram54288 0:dbad57390bd1 138
ram54288 0:dbad57390bd1 139 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 140
ram54288 0:dbad57390bd1 141 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 142 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 143 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 144 impl->_security = NULL;
ram54288 0:dbad57390bd1 145 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 146 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 147
ram54288 0:dbad57390bd1 148 delete val;
ram54288 0:dbad57390bd1 149
ram54288 0:dbad57390bd1 150 val = new String("coaps://10.45.3.83]:5685");
ram54288 0:dbad57390bd1 151
ram54288 0:dbad57390bd1 152 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 153
ram54288 0:dbad57390bd1 154 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 155 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 156 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 157 impl->_security = NULL;
ram54288 0:dbad57390bd1 158 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 159
ram54288 0:dbad57390bd1 160 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 161
ram54288 0:dbad57390bd1 162 delete val;
ram54288 0:dbad57390bd1 163
ram54288 0:dbad57390bd1 164 val = new String("coap://10.45.3.83:5685");
ram54288 0:dbad57390bd1 165
ram54288 0:dbad57390bd1 166 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 167 impl->_security = NULL;
ram54288 0:dbad57390bd1 168 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 169 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 170 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 171 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 172
ram54288 0:dbad57390bd1 173 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 174
ram54288 0:dbad57390bd1 175 delete val;
ram54288 0:dbad57390bd1 176
ram54288 0:dbad57390bd1 177 val = new String("coap://10.45.3.83:5685");
ram54288 0:dbad57390bd1 178 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 179 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 180 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 181 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 182 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 183
ram54288 0:dbad57390bd1 184 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 185
ram54288 0:dbad57390bd1 186 delete val;
ram54288 0:dbad57390bd1 187
ram54288 0:dbad57390bd1 188 val = new String("coap://10.45.3.83:5685");
ram54288 0:dbad57390bd1 189 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 190 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 191
ram54288 0:dbad57390bd1 192 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 193
ram54288 0:dbad57390bd1 194 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 195
ram54288 0:dbad57390bd1 196 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 197 m2mconnectionhandler_stub::bool_value = false;
ram54288 0:dbad57390bd1 198
ram54288 0:dbad57390bd1 199 // Ignore the event.
ram54288 0:dbad57390bd1 200 impl->_current_state = M2MInterfaceImpl::STATE_WAITING;
ram54288 0:dbad57390bd1 201 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 202
ram54288 0:dbad57390bd1 203 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 204
ram54288 0:dbad57390bd1 205 impl->bootstrap(sec);
ram54288 0:dbad57390bd1 206
ram54288 0:dbad57390bd1 207 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 208 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 209
ram54288 0:dbad57390bd1 210 delete val;
ram54288 0:dbad57390bd1 211 val = NULL;
ram54288 0:dbad57390bd1 212
ram54288 0:dbad57390bd1 213 delete sec;
ram54288 0:dbad57390bd1 214 }
ram54288 0:dbad57390bd1 215
ram54288 0:dbad57390bd1 216 void Test_M2MInterfaceImpl::test_cancel_bootstrap()
ram54288 0:dbad57390bd1 217 {
ram54288 0:dbad57390bd1 218 // Check for coverage, currently no implementation
ram54288 0:dbad57390bd1 219 impl->cancel_bootstrap();
ram54288 0:dbad57390bd1 220 }
ram54288 0:dbad57390bd1 221
ram54288 0:dbad57390bd1 222 void Test_M2MInterfaceImpl::test_register_object()
ram54288 0:dbad57390bd1 223 {
ram54288 0:dbad57390bd1 224 M2MSecurity *sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 225 m2msecurity_stub::int_value = 2;
ram54288 0:dbad57390bd1 226
ram54288 0:dbad57390bd1 227 M2MObject *object = new M2MObject("test", "test");
ram54288 0:dbad57390bd1 228 M2MObjectInstance *ins = object->create_object_instance();
ram54288 0:dbad57390bd1 229 ins->create_dynamic_resource("test","type",M2MResourceInstance::STRING,false,false);
ram54288 0:dbad57390bd1 230
ram54288 0:dbad57390bd1 231 M2MObjectList list;
ram54288 0:dbad57390bd1 232 list.push_back(object);
ram54288 0:dbad57390bd1 233
ram54288 0:dbad57390bd1 234 String *val = new String("coaps://[2001:12:12:23::23:FF]:5685");
ram54288 0:dbad57390bd1 235 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 236 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 237 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 238
ram54288 0:dbad57390bd1 239 impl->register_object(NULL,list);
ram54288 0:dbad57390bd1 240 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 241
ram54288 0:dbad57390bd1 242 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 243 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER);
ram54288 0:dbad57390bd1 244
ram54288 0:dbad57390bd1 245 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 246 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 247 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER);
ram54288 0:dbad57390bd1 248
ram54288 0:dbad57390bd1 249 delete val;
ram54288 0:dbad57390bd1 250 val = new String("coaps://[10.45.3.83:5685");
ram54288 0:dbad57390bd1 251 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 252 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 253 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 254 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 255
ram54288 0:dbad57390bd1 256 delete impl->_security;
ram54288 0:dbad57390bd1 257 impl->_security = NULL;
ram54288 0:dbad57390bd1 258 sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 259 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 260
ram54288 0:dbad57390bd1 261 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 262 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 263 observer->error_occured = false;
ram54288 0:dbad57390bd1 264 delete val;
ram54288 0:dbad57390bd1 265 val = new String("coaps://10.45.3.83]:5685");
ram54288 0:dbad57390bd1 266
ram54288 0:dbad57390bd1 267 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 268
ram54288 0:dbad57390bd1 269 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 270 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 271 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 272
ram54288 0:dbad57390bd1 273 delete impl->_security;
ram54288 0:dbad57390bd1 274 impl->_security = NULL;
ram54288 0:dbad57390bd1 275 sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 276 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 277
ram54288 0:dbad57390bd1 278 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 279 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 280
ram54288 0:dbad57390bd1 281 observer->error_occured = false;
ram54288 0:dbad57390bd1 282 delete val;
ram54288 0:dbad57390bd1 283 val = new String("coaps://10.45.3.83:5685");
ram54288 0:dbad57390bd1 284 delete impl->_security;
ram54288 0:dbad57390bd1 285 impl->_security = NULL;
ram54288 0:dbad57390bd1 286 sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 287
ram54288 0:dbad57390bd1 288 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 289
ram54288 0:dbad57390bd1 290 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 291 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 292 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 293
ram54288 0:dbad57390bd1 294 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 295
ram54288 0:dbad57390bd1 296 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER);
ram54288 0:dbad57390bd1 297
ram54288 0:dbad57390bd1 298 observer->error_occured = false;
ram54288 0:dbad57390bd1 299 delete val;
ram54288 0:dbad57390bd1 300 val = new String("coap://10.45.3.83:5685");
ram54288 0:dbad57390bd1 301 delete impl->_security;
ram54288 0:dbad57390bd1 302 impl->_security = NULL;
ram54288 0:dbad57390bd1 303 sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 304
ram54288 0:dbad57390bd1 305 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 306
ram54288 0:dbad57390bd1 307 m2msecurity_stub::string_value = val;
ram54288 0:dbad57390bd1 308 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 309 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 310
ram54288 0:dbad57390bd1 311 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 312
ram54288 0:dbad57390bd1 313 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER);
ram54288 0:dbad57390bd1 314
ram54288 0:dbad57390bd1 315 delete val;
ram54288 0:dbad57390bd1 316 val = new String("coap://10.45.3.83:5685");
ram54288 0:dbad57390bd1 317 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 318 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER);
ram54288 0:dbad57390bd1 319
ram54288 0:dbad57390bd1 320
ram54288 0:dbad57390bd1 321 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 322 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 323 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 324
ram54288 0:dbad57390bd1 325 delete impl->_security;
ram54288 0:dbad57390bd1 326 impl->_security = NULL;
ram54288 0:dbad57390bd1 327 sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 328 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 329
ram54288 0:dbad57390bd1 330 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 331 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 332
ram54288 0:dbad57390bd1 333 impl->_current_state = M2MInterfaceImpl::STATE_BOOTSTRAP;
ram54288 0:dbad57390bd1 334 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 335 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 336
ram54288 0:dbad57390bd1 337 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 338
ram54288 0:dbad57390bd1 339 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 340 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 341
ram54288 0:dbad57390bd1 342 impl->_current_state = M2MInterfaceImpl::STATE_BOOTSTRAP;
ram54288 0:dbad57390bd1 343 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 344 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 345
ram54288 0:dbad57390bd1 346 impl->register_object(sec,list);
ram54288 0:dbad57390bd1 347
ram54288 0:dbad57390bd1 348 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 349
ram54288 0:dbad57390bd1 350
ram54288 0:dbad57390bd1 351 delete val;
ram54288 0:dbad57390bd1 352 val = NULL;
ram54288 0:dbad57390bd1 353
ram54288 0:dbad57390bd1 354 list.clear();
ram54288 0:dbad57390bd1 355 delete object;
ram54288 0:dbad57390bd1 356 delete sec;
ram54288 0:dbad57390bd1 357 }
ram54288 0:dbad57390bd1 358
ram54288 0:dbad57390bd1 359 void Test_M2MInterfaceImpl::test_update_registration()
ram54288 0:dbad57390bd1 360 {
ram54288 0:dbad57390bd1 361 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 362 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 363 impl->update_registration(NULL,120);
ram54288 0:dbad57390bd1 364
ram54288 0:dbad57390bd1 365 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_UPDATE_REGISTRATION);
ram54288 0:dbad57390bd1 366
ram54288 0:dbad57390bd1 367 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 368 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 369 impl->update_registration(NULL,120);
ram54288 0:dbad57390bd1 370
ram54288 0:dbad57390bd1 371 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_UPDATE_REGISTRATION);
ram54288 0:dbad57390bd1 372
ram54288 0:dbad57390bd1 373 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 374 impl->update_registration(NULL,120);
ram54288 0:dbad57390bd1 375
ram54288 0:dbad57390bd1 376 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 377 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 378
ram54288 0:dbad57390bd1 379 impl->_current_state = M2MInterfaceImpl::STATE_BOOTSTRAP;
ram54288 0:dbad57390bd1 380 impl->update_registration(NULL,120);
ram54288 0:dbad57390bd1 381
ram54288 0:dbad57390bd1 382 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP);
ram54288 0:dbad57390bd1 383 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 384
ram54288 0:dbad57390bd1 385 impl->update_registration(NULL,30);
ram54288 0:dbad57390bd1 386 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 387
ram54288 0:dbad57390bd1 388 impl->update_registration(NULL,120);
ram54288 0:dbad57390bd1 389 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 390
ram54288 0:dbad57390bd1 391
ram54288 0:dbad57390bd1 392 M2MObject *object = new M2MObject("test", "test");
ram54288 0:dbad57390bd1 393 M2MObjectInstance *ins = object->create_object_instance();
ram54288 0:dbad57390bd1 394 ins->create_dynamic_resource("test","type",M2MResourceInstance::STRING,false,false);
ram54288 0:dbad57390bd1 395
ram54288 0:dbad57390bd1 396 M2MObjectList list;
ram54288 0:dbad57390bd1 397 list.push_back(object);
ram54288 0:dbad57390bd1 398 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 399 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 400 impl->update_registration(NULL, list);
ram54288 0:dbad57390bd1 401
ram54288 0:dbad57390bd1 402 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_UPDATE_REGISTRATION);
ram54288 0:dbad57390bd1 403 list.clear();
ram54288 0:dbad57390bd1 404
ram54288 0:dbad57390bd1 405 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 406 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 407 impl->update_registration(NULL, list);
ram54288 0:dbad57390bd1 408
ram54288 0:dbad57390bd1 409 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_UPDATE_REGISTRATION);
ram54288 0:dbad57390bd1 410 delete object;
ram54288 0:dbad57390bd1 411
ram54288 0:dbad57390bd1 412 }
ram54288 0:dbad57390bd1 413
ram54288 0:dbad57390bd1 414 void Test_M2MInterfaceImpl::test_unregister_object()
ram54288 0:dbad57390bd1 415 {
ram54288 0:dbad57390bd1 416 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 417 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 418
ram54288 0:dbad57390bd1 419 impl->unregister_object(NULL);
ram54288 0:dbad57390bd1 420
ram54288 0:dbad57390bd1 421 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 422
ram54288 0:dbad57390bd1 423 impl->_current_state = M2MInterfaceImpl::STATE_REGISTERED;
ram54288 0:dbad57390bd1 424 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 425
ram54288 0:dbad57390bd1 426 impl->unregister_object(NULL);
ram54288 0:dbad57390bd1 427
ram54288 0:dbad57390bd1 428 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 429 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 430
ram54288 0:dbad57390bd1 431 impl->_current_state = M2MInterfaceImpl::STATE_IDLE;
ram54288 0:dbad57390bd1 432
ram54288 0:dbad57390bd1 433 impl->unregister_object(NULL);
ram54288 0:dbad57390bd1 434 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 435 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 436 }
ram54288 0:dbad57390bd1 437
ram54288 0:dbad57390bd1 438 void Test_M2MInterfaceImpl::test_set_queue_sleep_handler()
ram54288 0:dbad57390bd1 439 {
ram54288 0:dbad57390bd1 440 callback_handler cb(this,&Test_M2MInterfaceImpl::test_callback_handler);
ram54288 0:dbad57390bd1 441 impl->set_queue_sleep_handler(cb);
ram54288 0:dbad57390bd1 442 CHECK(impl->_callback_handler != NULL);
ram54288 0:dbad57390bd1 443
ram54288 0:dbad57390bd1 444 callback_handler cb1(NULL);
ram54288 0:dbad57390bd1 445 impl->set_queue_sleep_handler(cb1);
ram54288 0:dbad57390bd1 446 CHECK(impl->_callback_handler == NULL);
ram54288 0:dbad57390bd1 447 }
ram54288 0:dbad57390bd1 448
ram54288 0:dbad57390bd1 449
ram54288 0:dbad57390bd1 450 void Test_M2MInterfaceImpl::test_set_random_number_callback()
ram54288 0:dbad57390bd1 451 {
ram54288 0:dbad57390bd1 452 random_number_cb cb(&test_random_callback);
ram54288 0:dbad57390bd1 453 impl->set_random_number_callback(cb);
ram54288 0:dbad57390bd1 454 }
ram54288 0:dbad57390bd1 455
ram54288 0:dbad57390bd1 456 void Test_M2MInterfaceImpl::test_set_entropy_callback()
ram54288 0:dbad57390bd1 457 {
ram54288 0:dbad57390bd1 458 impl->set_entropy_callback(ent_cb);
ram54288 0:dbad57390bd1 459 }
ram54288 0:dbad57390bd1 460
ram54288 0:dbad57390bd1 461 void Test_M2MInterfaceImpl::test_set_platform_network_handler()
ram54288 0:dbad57390bd1 462 {
ram54288 0:dbad57390bd1 463 void *test = NULL;
ram54288 0:dbad57390bd1 464 impl->set_platform_network_handler(test);
ram54288 0:dbad57390bd1 465 }
ram54288 0:dbad57390bd1 466
ram54288 0:dbad57390bd1 467 void Test_M2MInterfaceImpl::test_coap_message_ready()
ram54288 0:dbad57390bd1 468 {
ram54288 0:dbad57390bd1 469 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 470 uint8_t *data_ptr = (uint8_t *)malloc(sizeof(uint8_t));
ram54288 0:dbad57390bd1 471 uint16_t data_len = sizeof(uint8_t);
ram54288 0:dbad57390bd1 472 sn_nsdl_addr_s *address_ptr = (sn_nsdl_addr_s*)malloc(sizeof(sn_nsdl_addr_s));
ram54288 0:dbad57390bd1 473
ram54288 0:dbad57390bd1 474 impl->coap_message_ready(data_ptr,data_len,address_ptr);
ram54288 0:dbad57390bd1 475 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 476
ram54288 0:dbad57390bd1 477 impl->_current_state = M2MInterfaceImpl::STATE_WAITING;
ram54288 0:dbad57390bd1 478 impl->coap_message_ready(data_ptr,data_len,address_ptr);
ram54288 0:dbad57390bd1 479 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 480
ram54288 0:dbad57390bd1 481 m2mconnectionhandler_stub::bool_value = false;
ram54288 0:dbad57390bd1 482 impl->coap_message_ready(data_ptr,data_len,address_ptr);
ram54288 0:dbad57390bd1 483
ram54288 0:dbad57390bd1 484 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 485 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 486
ram54288 0:dbad57390bd1 487 free(address_ptr);
ram54288 0:dbad57390bd1 488 free(data_ptr);
ram54288 0:dbad57390bd1 489 }
ram54288 0:dbad57390bd1 490
ram54288 0:dbad57390bd1 491 void Test_M2MInterfaceImpl::test_client_registered()
ram54288 0:dbad57390bd1 492 {
ram54288 0:dbad57390bd1 493 impl->client_registered(NULL);
ram54288 0:dbad57390bd1 494
ram54288 0:dbad57390bd1 495 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTERED);
ram54288 0:dbad57390bd1 496 CHECK(observer->registered == true);
ram54288 0:dbad57390bd1 497 }
ram54288 0:dbad57390bd1 498
ram54288 0:dbad57390bd1 499 void Test_M2MInterfaceImpl::test_registration_updated()
ram54288 0:dbad57390bd1 500 {
ram54288 0:dbad57390bd1 501 M2MServer *server = NULL;
ram54288 0:dbad57390bd1 502 impl->registration_updated(*server);
ram54288 0:dbad57390bd1 503
ram54288 0:dbad57390bd1 504 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTERED);
ram54288 0:dbad57390bd1 505 CHECK(observer->registered == true);
ram54288 0:dbad57390bd1 506 }
ram54288 0:dbad57390bd1 507
ram54288 0:dbad57390bd1 508 void Test_M2MInterfaceImpl::test_registration_error()
ram54288 0:dbad57390bd1 509 {
ram54288 0:dbad57390bd1 510 impl->registration_error(1);
ram54288 0:dbad57390bd1 511 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 512 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 513
ram54288 0:dbad57390bd1 514 observer->error_occured = false;
ram54288 0:dbad57390bd1 515 impl->registration_error(1, true);
ram54288 0:dbad57390bd1 516 CHECK(observer->error_occured == false);
ram54288 0:dbad57390bd1 517 }
ram54288 0:dbad57390bd1 518
ram54288 0:dbad57390bd1 519 void Test_M2MInterfaceImpl::test_client_unregistered()
ram54288 0:dbad57390bd1 520 {
ram54288 0:dbad57390bd1 521 impl->client_unregistered();
ram54288 0:dbad57390bd1 522
ram54288 0:dbad57390bd1 523 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 524 CHECK(observer->unregistered == true);
ram54288 0:dbad57390bd1 525 }
ram54288 0:dbad57390bd1 526
ram54288 0:dbad57390bd1 527 void Test_M2MInterfaceImpl::test_bootstrap_wait()
ram54288 0:dbad57390bd1 528 {
ram54288 0:dbad57390bd1 529 M2MSecurity *sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 530 impl->bootstrap_wait(sec);
ram54288 0:dbad57390bd1 531
ram54288 0:dbad57390bd1 532 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP_WAIT);
ram54288 0:dbad57390bd1 533 CHECK(impl->_security == sec);
ram54288 0:dbad57390bd1 534 CHECK(observer->bootstrapped == false);
ram54288 0:dbad57390bd1 535
ram54288 0:dbad57390bd1 536 delete sec;
ram54288 0:dbad57390bd1 537 }
ram54288 0:dbad57390bd1 538
ram54288 0:dbad57390bd1 539
ram54288 0:dbad57390bd1 540 void Test_M2MInterfaceImpl::test_bootstrap_done()
ram54288 0:dbad57390bd1 541 {
ram54288 0:dbad57390bd1 542 M2MSecurity *sec = new M2MSecurity(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 543 impl->bootstrap_done(sec);
ram54288 0:dbad57390bd1 544
ram54288 0:dbad57390bd1 545 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAPPED);
ram54288 0:dbad57390bd1 546 CHECK(observer->bootstrapped == true);
ram54288 0:dbad57390bd1 547
ram54288 0:dbad57390bd1 548 delete sec;
ram54288 0:dbad57390bd1 549 }
ram54288 0:dbad57390bd1 550
ram54288 0:dbad57390bd1 551 void Test_M2MInterfaceImpl::test_bootstrap_error()
ram54288 0:dbad57390bd1 552 {
ram54288 0:dbad57390bd1 553 impl->bootstrap_error();
ram54288 0:dbad57390bd1 554
ram54288 0:dbad57390bd1 555 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 556 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 557 }
ram54288 0:dbad57390bd1 558
ram54288 0:dbad57390bd1 559 void Test_M2MInterfaceImpl::test_coap_data_processed()
ram54288 0:dbad57390bd1 560 {
ram54288 0:dbad57390bd1 561 impl->coap_data_processed();
ram54288 0:dbad57390bd1 562 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 563 }
ram54288 0:dbad57390bd1 564
ram54288 0:dbad57390bd1 565 void Test_M2MInterfaceImpl::test_value_updated()
ram54288 0:dbad57390bd1 566 {
ram54288 0:dbad57390bd1 567 impl->value_updated(NULL);
ram54288 0:dbad57390bd1 568 CHECK(observer->val_updated == false);
ram54288 0:dbad57390bd1 569
ram54288 0:dbad57390bd1 570 M2MBaseTest b;
ram54288 0:dbad57390bd1 571 impl->value_updated(&b);
ram54288 0:dbad57390bd1 572 CHECK(observer->val_updated == true);
ram54288 0:dbad57390bd1 573 }
ram54288 0:dbad57390bd1 574
ram54288 0:dbad57390bd1 575 void Test_M2MInterfaceImpl::test_data_available()
ram54288 0:dbad57390bd1 576 {
ram54288 0:dbad57390bd1 577 uint8_t* data = (uint8_t*)malloc(sizeof(uint8_t));
ram54288 0:dbad57390bd1 578 uint16_t data_size = sizeof(uint8_t);
ram54288 0:dbad57390bd1 579 M2MConnectionObserver::SocketAddress *address = (M2MConnectionObserver::SocketAddress*)
ram54288 0:dbad57390bd1 580 malloc(sizeof(M2MConnectionObserver::SocketAddress));
ram54288 0:dbad57390bd1 581
ram54288 0:dbad57390bd1 582 address->_stack = M2MInterface::LwIP_IPv4;
ram54288 0:dbad57390bd1 583 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 584
ram54288 0:dbad57390bd1 585 impl->data_available(data,data_size,*address);
ram54288 0:dbad57390bd1 586
ram54288 0:dbad57390bd1 587 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 588
ram54288 0:dbad57390bd1 589 address->_stack = M2MInterface::LwIP_IPv6;
ram54288 0:dbad57390bd1 590 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 591
ram54288 0:dbad57390bd1 592 impl->data_available(data,data_size,*address);
ram54288 0:dbad57390bd1 593
ram54288 0:dbad57390bd1 594 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 595
ram54288 0:dbad57390bd1 596 address->_stack = M2MInterface::LwIP_IPv4;
ram54288 0:dbad57390bd1 597 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 598
ram54288 0:dbad57390bd1 599 impl->data_available(data,data_size,*address);
ram54288 0:dbad57390bd1 600
ram54288 0:dbad57390bd1 601 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 602 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 603
ram54288 0:dbad57390bd1 604 free(data);
ram54288 0:dbad57390bd1 605 free(address);
ram54288 0:dbad57390bd1 606 }
ram54288 0:dbad57390bd1 607
ram54288 0:dbad57390bd1 608 void Test_M2MInterfaceImpl::test_socket_error()
ram54288 0:dbad57390bd1 609 {
ram54288 0:dbad57390bd1 610 for (int i = 0; i <= MBED_CLIENT_RECONNECTION_COUNT; i++) {
ram54288 0:dbad57390bd1 611 impl->socket_error(M2MConnectionHandler::SSL_CONNECTION_ERROR);
ram54288 0:dbad57390bd1 612 impl->_retry_timer_expired = true;
ram54288 0:dbad57390bd1 613 }
ram54288 0:dbad57390bd1 614 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 615
ram54288 0:dbad57390bd1 616 observer->error_occured = false;
ram54288 0:dbad57390bd1 617 impl->socket_error(M2MConnectionHandler::SOCKET_READ_ERROR, false);
ram54288 0:dbad57390bd1 618 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 619 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 620
ram54288 0:dbad57390bd1 621 observer->error_occured = false;
ram54288 0:dbad57390bd1 622 impl->socket_error(M2MConnectionHandler::DNS_RESOLVING_ERROR, false);
ram54288 0:dbad57390bd1 623 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 624 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 625
ram54288 0:dbad57390bd1 626 observer->error_occured = false;
ram54288 0:dbad57390bd1 627 impl->socket_error(M2MConnectionHandler::SOCKET_SEND_ERROR, false);
ram54288 0:dbad57390bd1 628 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 629 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 630
ram54288 0:dbad57390bd1 631 observer->error_occured = false;
ram54288 0:dbad57390bd1 632 impl->socket_error(M2MConnectionHandler::SSL_HANDSHAKE_ERROR, false);
ram54288 0:dbad57390bd1 633 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 634 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 635
ram54288 0:dbad57390bd1 636 observer->error_occured = false;
ram54288 0:dbad57390bd1 637 impl->socket_error(M2MConnectionHandler::SOCKET_ABORT, false);
ram54288 0:dbad57390bd1 638 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 639 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 640
ram54288 0:dbad57390bd1 641 observer->error_occured = false;
ram54288 0:dbad57390bd1 642 impl->socket_error(M2MConnectionHandler::ERROR_NONE, false);
ram54288 0:dbad57390bd1 643 CHECK(observer->error_occured == false);
ram54288 0:dbad57390bd1 644 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 645 }
ram54288 0:dbad57390bd1 646
ram54288 0:dbad57390bd1 647 void Test_M2MInterfaceImpl::test_address_ready()
ram54288 0:dbad57390bd1 648 {
ram54288 0:dbad57390bd1 649 M2MConnectionObserver::SocketAddress *address =
ram54288 0:dbad57390bd1 650 (M2MConnectionObserver::SocketAddress*) malloc(sizeof(M2MConnectionObserver::SocketAddress));
ram54288 0:dbad57390bd1 651 M2MConnectionObserver::ServerType server_type = M2MConnectionObserver::Bootstrap;
ram54288 0:dbad57390bd1 652 uint16_t server_port = 5685;
ram54288 0:dbad57390bd1 653
ram54288 0:dbad57390bd1 654 address->_stack = M2MInterface::LwIP_IPv6;
ram54288 0:dbad57390bd1 655 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 656
ram54288 0:dbad57390bd1 657 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 658 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP_RESOURCE_CREATED);
ram54288 0:dbad57390bd1 659
ram54288 0:dbad57390bd1 660 address->_stack = M2MInterface::LwIP_IPv4;
ram54288 0:dbad57390bd1 661 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 662
ram54288 0:dbad57390bd1 663 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 664 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_BOOTSTRAP_RESOURCE_CREATED);
ram54288 0:dbad57390bd1 665
ram54288 0:dbad57390bd1 666
ram54288 0:dbad57390bd1 667 address->_stack = M2MInterface::LwIP_IPv6;
ram54288 0:dbad57390bd1 668 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 669
ram54288 0:dbad57390bd1 670 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 671 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 672 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 673
ram54288 0:dbad57390bd1 674 // Test for Address resolving for LWM2M server
ram54288 0:dbad57390bd1 675 server_type = M2MConnectionObserver::LWM2MServer;
ram54288 0:dbad57390bd1 676
ram54288 0:dbad57390bd1 677 address->_stack = M2MInterface::LwIP_IPv4;
ram54288 0:dbad57390bd1 678 m2mnsdlinterface_stub::bool_value = true;
ram54288 0:dbad57390bd1 679
ram54288 0:dbad57390bd1 680 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 681 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER_ADDRESS_RESOLVED);
ram54288 0:dbad57390bd1 682
ram54288 0:dbad57390bd1 683 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 684 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_REGISTER_ADDRESS_RESOLVED);
ram54288 0:dbad57390bd1 685
ram54288 0:dbad57390bd1 686 address->_stack = M2MInterface::LwIP_IPv6;
ram54288 0:dbad57390bd1 687 m2mnsdlinterface_stub::bool_value = false;
ram54288 0:dbad57390bd1 688
ram54288 0:dbad57390bd1 689 impl->address_ready(*address,server_type,server_port);
ram54288 0:dbad57390bd1 690 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_IDLE);
ram54288 0:dbad57390bd1 691 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 692
ram54288 0:dbad57390bd1 693 free(address);
ram54288 0:dbad57390bd1 694 }
ram54288 0:dbad57390bd1 695
ram54288 0:dbad57390bd1 696 void Test_M2MInterfaceImpl::test_data_sent()
ram54288 0:dbad57390bd1 697 {
ram54288 0:dbad57390bd1 698 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 699
ram54288 0:dbad57390bd1 700 impl->data_sent();
ram54288 0:dbad57390bd1 701
ram54288 0:dbad57390bd1 702 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 703
ram54288 0:dbad57390bd1 704 m2mconnectionhandler_stub::bool_value = false;
ram54288 0:dbad57390bd1 705
ram54288 0:dbad57390bd1 706 impl->data_sent();
ram54288 0:dbad57390bd1 707
ram54288 0:dbad57390bd1 708 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 709 CHECK(observer->error_occured == false);
ram54288 0:dbad57390bd1 710
ram54288 0:dbad57390bd1 711 impl->_callback_handler = callback_handler(this, &Test_M2MInterfaceImpl::test_callback_handler);
ram54288 0:dbad57390bd1 712
ram54288 0:dbad57390bd1 713 m2mconnectionhandler_stub::bool_value = true;
ram54288 0:dbad57390bd1 714
ram54288 0:dbad57390bd1 715 impl->_binding_mode = M2MInterface::UDP_QUEUE;
ram54288 0:dbad57390bd1 716 impl->data_sent();
ram54288 0:dbad57390bd1 717 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 718
ram54288 0:dbad57390bd1 719 impl->_binding_mode = M2MInterface::TCP_QUEUE;
ram54288 0:dbad57390bd1 720 impl->data_sent();
ram54288 0:dbad57390bd1 721 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 722
ram54288 0:dbad57390bd1 723 impl->_binding_mode = M2MInterface::SMS_QUEUE;
ram54288 0:dbad57390bd1 724 impl->data_sent();
ram54288 0:dbad57390bd1 725 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 726
ram54288 0:dbad57390bd1 727 impl->_binding_mode = M2MInterface::UDP_SMS_QUEUE;
ram54288 0:dbad57390bd1 728 impl->data_sent();
ram54288 0:dbad57390bd1 729 CHECK(impl->_current_state == M2MInterfaceImpl::STATE_WAITING);
ram54288 0:dbad57390bd1 730 }
ram54288 0:dbad57390bd1 731
ram54288 0:dbad57390bd1 732 void Test_M2MInterfaceImpl::test_timer_expired()
ram54288 0:dbad57390bd1 733 {
ram54288 0:dbad57390bd1 734 visited = false;
ram54288 0:dbad57390bd1 735 impl->_callback_handler = NULL;
ram54288 0:dbad57390bd1 736 impl->timer_expired(M2MTimerObserver::QueueSleep);
ram54288 0:dbad57390bd1 737 CHECK(visited == false);
ram54288 0:dbad57390bd1 738
ram54288 0:dbad57390bd1 739 impl->_callback_handler = callback_handler(this, &Test_M2MInterfaceImpl::test_callback_handler);
ram54288 0:dbad57390bd1 740
ram54288 0:dbad57390bd1 741 visited = false;
ram54288 0:dbad57390bd1 742 impl->timer_expired(M2MTimerObserver::QueueSleep);
ram54288 0:dbad57390bd1 743 CHECK(visited == true);
ram54288 0:dbad57390bd1 744 visited = false;
ram54288 0:dbad57390bd1 745
ram54288 0:dbad57390bd1 746 impl->_bootstrapped = true;
ram54288 0:dbad57390bd1 747 impl->timer_expired(M2MTimerObserver::RetryTimer);
ram54288 0:dbad57390bd1 748 CHECK(impl->_retry_timer_expired == true);
ram54288 0:dbad57390bd1 749
ram54288 0:dbad57390bd1 750 impl->_bootstrapped = false;
ram54288 0:dbad57390bd1 751 impl->timer_expired(M2MTimerObserver::RetryTimer);
ram54288 0:dbad57390bd1 752 CHECK(impl->_retry_timer_expired == true);
ram54288 0:dbad57390bd1 753
ram54288 0:dbad57390bd1 754 observer->error_occured = false;
ram54288 0:dbad57390bd1 755 impl->timer_expired(M2MTimerObserver::BootstrapTimer);
ram54288 0:dbad57390bd1 756 CHECK(observer->error_occured == true);
ram54288 0:dbad57390bd1 757 }
ram54288 0:dbad57390bd1 758
ram54288 0:dbad57390bd1 759 void Test_M2MInterfaceImpl::test_callback_handler()
ram54288 0:dbad57390bd1 760 {
ram54288 0:dbad57390bd1 761 visited = true;
ram54288 0:dbad57390bd1 762 }
ram54288 0:dbad57390bd1 763
ram54288 0:dbad57390bd1 764 uint32_t test_random_callback(void)
ram54288 0:dbad57390bd1 765 {
ram54288 0:dbad57390bd1 766 return 1;
ram54288 0:dbad57390bd1 767 }