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